Tôi đang sử dụng GLFW và tôi muốn biết cách chuyển đổi chế độ cửa sổ toàn màn hình. Không thay đổi độ phân giải, nhưng thay vào đó, hãy đặt cửa sổ lên trên và không có trang trí. Nếu GLFW không có khả năng làm điều này, thì bạn có đề nghị gì để đạt được điều này?GLFW Toggling Chế độ toàn màn hình có cửa sổ
Trả lời
Bạn có thể yêu cầu glfw mở toàn màn hình cửa sổ của mình.
glfwOpenWindow(width, height, 0, 0, 0, 0, 0, 0, GLFW_FULLSCREEN)
Theo tôi biết bạn sẽ phải đóng và mở lại cửa sổ này để chuyển đổi giữa chế độ cửa sổ và chế độ toàn màn hình.
Để tránh GLFW thay đổi độ phân giải màn hình, bạn có thể sử dụng glfwGetDesktopMode để truy vấn độ phân giải màn hình hiện tại và độ sâu màu và sau đó chuyển chúng vào glfwOpenWindow.
// get the current Desktop screen resolution and colour depth
GLFWvidmode desktop;
glfwGetDesktopMode(&desktop);
// open the window at the current Desktop resolution and colour depth
if (!glfwOpenWindow(
desktop.Width,
desktop.Height,
desktop.RedBits,
desktop.GreenBits,
desktop.BlueBits,
8, // alpha bits
32, // depth bits
0, // stencil bits
GLFW_FULLSCREEN
)) {
// failed to open window: handle it here
}
Điều này rất hữu ích! Điều này + nhìn vào mã nguồn cho glfw :-) – netpoetica
Kể từ phiên bản 3.2:
Windowed mode cửa sổ có thể được thực hiện đầy đủ màn hình bằng cách thiết lập một màn hình với glfwSetWindowMonitor, và đầy những màn hình có thể được thực hiện cửa sổ bởi unset nó với chức năng tương tự.
hoặc nếu bạn muốn chuyển đổi từ 'GLFW_WINDOW' cho' GLFW_FULLSCREEN' bạn phải clode cửa sổ đầu tiên trước khi mở cái mới. – danijar