Tôi đang viết và ứng dụng OpenGL trên Linux (Ubuntu 11.10) bằng Xlib (X11). Cách đơn giản nhất để thực hiện chuyển đổi giữa chế độ cửa sổ và chế độ toàn màn hình là gì?X11 Cửa sổ toàn màn hình (OpenGL)
6
A
Trả lời
4
ở cấp giao thức, xem thuộc tính _NET_WM_STATE với thư khách hàng đi kèm và cờ trạng thái toàn màn hình. điều này được quy định trong thông số EWMH. cho điểm thưởng bạn có thể muốn thực hiện thủ công toàn màn hình nếu WM không báo cáo hỗ trợ cho gợi ý chính thức, EWMH sẽ chỉ ra cách kiểm tra những gì được hỗ trợ. Bạn cũng có thể muốn lấy con trỏ chuột và/hoặc bàn phím nếu bạn không muốn mọi người vô tình rời khỏi chế độ toàn màn hình.
hoặc, để tránh tìm hiểu mức độ thấp X gunge, chỉ cần sử dụng SDL hoặc GTK hoặc Qt hoặc một cái gì đó và tất cả họ nên có một cuộc gọi phương thức đơn giản để chuyển đổi toàn màn hình.
8
Dưới đây là một thực hiện what Havoc P suggested, để tiết kiệm người bên cạnh sự nỗ lực:
void fullscreen(Display* dpy, Window win) {
Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
XChangeProperty(
dpy,
win,
XInternAtom(dpy, "_NET_WM_STATE", False),
XA_ATOM, 32, PropModeReplace, atoms, 1
);
}
Các vấn đề liên quan
- 1. X11/GLX - Chế độ toàn màn hình?
- 2. Ảnh chụp màn hình X11 của cửa sổ hoạt động không thành công cho cửa sổ GTK
- 3. Nhiều cửa sổ toàn màn hình với DirectX 9.0
- 4. GLFW Toggling Chế độ toàn màn hình có cửa sổ
- 5. cửa sổ toàn màn hình java với độ trong suốt
- 6. Đặt hình nền của cửa sổ OpenGL
- 7. Không có cửa sổ OpenGL
- 8. Nhiều cửa sổ trong OpenGL?
- 9. Tìm kích thước cửa sổ X11?
- 10. Xử lý cửa sổ X11 từ GtkWidget
- 11. Nhúng QWidget vào Cửa sổ X11
- 12. Đặt một cửa sổ trên màn hình
- 13. OpenGL tối đa 32 cửa sổ trên màn hình với Vista/7
- 14. Di biên giới từ toàn màn hình chỉ cửa sổ nổi (cấu hình Xmonad)
- 15. Toàn màn hình Python TKinter hoặc cửa sổ wxPython, nhưng 'ở phía dưới cùng' của tất cả các cửa sổ?
- 16. Căn giữa cửa sổ OpenGL với GLUT
- 17. Kết cấu toàn màn hình iPhone OpenGL ES
- 18. Tôi có thể làm cho cửa sổ X11 OpenGL có khả năng sau khi nó đã được tạo không?
- 19. Không thể tạo cửa sổ bật lên toàn màn hình WPF
- 20. Cách giới hạn vị trí tối đa toàn màn hình cửa sổ dưới cùng trên Windows
- 21. Đặt cửa sổ của ứng dụng eclipse e4 để có toàn bộ kích thước màn hình
- 22. cửa sổ trình duyệt toàn màn hình trên tài liệu tải
- 23. Tại sao cửa sổ cho phép bạn vẽ trên toàn bộ màn hình?
- 24. X11: đợi cho đến khi một cửa sổ hiển thị?
- 25. OpenGL: Hiển thị nhanh trên màn hình
- 26. Làm cách nào để đặt ứng dụng OpenGL của tôi ở chế độ toàn màn hình?
- 27. vấn đề tiết kiệm openGL FBO lớn hơn cửa sổ
- 28. Chụp ảnh màn hình nội dung cửa sổ cuộn
- 29. QT Cửa sổ mờ và màn hình từ xa
- 30. Lớp để định vị một cửa sổ trên màn hình
Xin giải thích lý do tại sao công việc này thay vì chỉ đưa ra câu trả lời – ArtB
Um, gcc được phàn nàn khi tôi sử dụng đoạn mã này. Theo manpage 'XChangeProperty', không nên đối số thứ hai-to-cuối của hàm nói trên là một chuỗi, không phải là một mảng các nguyên tử? – fouric
'XChangeProperty' có lẽ sai lầm lấy 'dữ liệu char unsigned' nhưng nó thực sự có nghĩa là phải là một con trỏ đến một mảng các nguyên tử như trong đoạn mã trên. Khiếu nại của gcc là gì? Nếu bạn đang cố gắng biên dịch mã này thành mã C++, bạn cần phải sử dụng một cách rõ ràng như '(unsigned char *) atoms'. –