我正在Linux(Ubuntu 11.10)上使用Xlib(X11)编写OpenGL应用程序。实现窗口模式和全屏模式之间切换的最简单方法是什么?
vsnjm48y1#
下面是what Havoc P suggested的一个实现,它可以保存下一个人的工作量:
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, (unsigned char*)atoms, 1 ); }
bjp0bcyl2#
在协议级别上,请参阅_NET_WM_STATE属性以及附带的客户端消息和全屏状态标志。这在EWMH规范中指定。如果WM不报告对官方提示的支持,EWMH指定了一种检查支持哪些功能的方法。如果您不想使用鼠标指针和/或键盘,您也可以使用它。I don“我不希望人们意外地离开全屏。或者,为了避免学习低级X gunge,只要使用SDL、GTK或Qt或其他工具,它们都应该有一个简单的方法调用来切换全屏。
2条答案
按热度按时间vsnjm48y1#
下面是what Havoc P suggested的一个实现,它可以保存下一个人的工作量:
bjp0bcyl2#
在协议级别上,请参阅_NET_WM_STATE属性以及附带的客户端消息和全屏状态标志。这在EWMH规范中指定。如果WM不报告对官方提示的支持,EWMH指定了一种检查支持哪些功能的方法。如果您不想使用鼠标指针和/或键盘,您也可以使用它。I don“我不希望人们意外地离开全屏。
或者,为了避免学习低级X gunge,只要使用SDL、GTK或Qt或其他工具,它们都应该有一个简单的方法调用来切换全屏。