static int Mir_ToggleFullScreen(_THIS, int on) { if (!mir_surface_is_valid(this->hidden->surface)) { const char* error = mir_surface_get_error_message(this->hidden->surface); SDL_SetError("Failed to created a mir surface: %s", error); mir_surface_release_sync(this->hidden->surface); return 0; } if (on) { mir_surface_set_state(this->hidden->surface, mir_surface_state_fullscreen); } else { mir_surface_set_state(this->hidden->surface, mir_surface_state_restored); } return 1; }
int _glfwPlatformCreateWindow(_GLFWwindow* window, const _GLFWwndconfig* wndconfig, const _GLFWctxconfig* ctxconfig, const _GLFWfbconfig* fbconfig) { if (window->monitor) { GLFWvidmode mode; _glfwPlatformGetVideoMode(window->monitor, &mode); mir_surface_set_state(window->mir.surface, mir_surface_state_fullscreen); if (wndconfig->width > mode.width || wndconfig->height > mode.height) { _glfwInputError(GLFW_PLATFORM_ERROR, "Mir: Requested surface size too large: %ix%i", wndconfig->width, wndconfig->height); return GLFW_FALSE; } } window->mir.width = wndconfig->width; window->mir.height = wndconfig->height; window->mir.currentCursor = NULL; if (!createSurface(window)) return GLFW_FALSE; window->mir.window = mir_buffer_stream_get_egl_native_window( mir_surface_get_buffer_stream(window->mir.surface)); if (ctxconfig->client != GLFW_NO_API) { if (!_glfwInitEGL()) return GLFW_FALSE; if (!_glfwCreateContextEGL(window, ctxconfig, fbconfig)) return GLFW_FALSE; } return GLFW_TRUE; }
void _glfwPlatformRestoreWindow(_GLFWwindow* window) { mir_surface_set_state(window->mir.surface, mir_surface_state_restored); }
void _glfwPlatformIconifyWindow(_GLFWwindow* window) { mir_surface_set_state(window->mir.surface, mir_surface_state_minimized); }