X11全屏幕视窗(OpenGL)

zkure5ic  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(180)

我正在Linux(Ubuntu 11.10)上使用Xlib(X11)编写OpenGL应用程序。实现窗口模式和全屏模式之间切换的最简单方法是什么?

vsnjm48y

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
  );
}
bjp0bcyl

bjp0bcyl2#

在协议级别上,请参阅_NET_WM_STATE属性以及附带的客户端消息和全屏状态标志。这在EWMH规范中指定。如果WM不报告对官方提示的支持,EWMH指定了一种检查支持哪些功能的方法。如果您不想使用鼠标指针和/或键盘,您也可以使用它。I don“我不希望人们意外地离开全屏。
或者,为了避免学习低级X gunge,只要使用SDL、GTK或Qt或其他工具,它们都应该有一个简单的方法调用来切换全屏。

相关问题