X11全屏窗口(OpenGL)

时间:2012-01-31 16:38:17

标签: opengl fullscreen x11 xlib

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

2 个答案:

答案 0 :(得分:8)

这是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, atoms, 1
  );
}

答案 1 :(得分:4)

协议级别的

,请参阅带有客户端消息和全屏状态标志的_NET_WM_STATE属性。这在EWMH规范中指定。对于奖励积分,如果WM不报告对官方提示的支持,您可能希望手动实现全屏,EWMH规定了检查支持的方式。您可能还想抓住鼠标指针和/或 键盘如果你不想让人不小心离开全屏。

或者,为了避免学习低级X gunge,只需使用SDL或GTK或Qt或其他东西,他们应该都有一个简单的方法调用来切换全屏。