2012-04-20 26 views
7

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

6

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.

+0

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

3

Để 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 
} 
+0

Điều này rất hữu ích! Điều này + nhìn vào mã nguồn cho glfw :-) – netpoetica

0

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ự.

http://www.glfw.org/docs/latest/window.html