【问题标题】:what is full screen mode什么是全屏模式
【发布时间】:2012-05-24 15:50:45
【问题描述】:

我知道你可以通过扩大窗口和消除标题栏、状态栏和其他东西来假全屏,我对此不感兴趣,我想知道“真正的”全屏模式(我不知道)不知道怎么称呼它),就像在游戏中一样。

究竟什么是全屏模式? 我应该使用什么 win-api 来实现这一目标? 这可以用来全屏播放电影吗?我知道 windows 媒体播放器使用假全屏,因为我可以通过它“剪切”并查看桌面(使用区域 win-api)。 我可以像通过窗口(使用区域 win-api)一样通过“真实”全屏“剪切”吗?或者这是直接写入视频内存并且“下方”没有任何内容吗?

谢谢!

【问题讨论】:

  • 你想使用 DirectX。
  • 所以没有win-api可以做吗?
  • DirectX Windows API 之一。我的意思是,它不在user32.dll 中,但这并不意味着它不是扩展的 Windows API 的一个组件。正如您所描述的,它专为游戏编程而设计,包括全屏模式。

标签: language-agnostic window


【解决方案1】:

如果您想在 Windows 上全屏制作游戏,最好的选择是 XNA。这在底层使用了 DirectX,但隐藏了很多实现细节和管道,以使开发人员可以轻松地开始开发他的游戏。

XNA 可以免费下载,并且有很好的文档。

XNA Game Studio 4.0 可以下载here.

【讨论】:

  • 您还没有真正回答这里的问题,您只是将 OP 扔到了另一种技术上,声称它是“狗的胡扯”。我个人不喜欢 XNA 死板的结构,但它确实为你处理了很多事情,所以对初学者来说更容易。值得向 OP 指出,请求窗口的唯一方法是通过 win32 API,但您不必直接使用它,任何看起来不像 win32 的东西都是简单的抽象它,所以你没有直接处理它是多么糟糕。
【解决方案2】:

如果您不想使用 DirectX,请创建窗口并使用 CDS_FULLSCREEN 标志调用 ChangeDisplaySettings。 OpenGL 应用程序使用这种方式来全屏显示。

【讨论】:

  • openGL 没有任何“全屏”的概念。窗口大小是在 openGL 外部管理的,将为您提供 openGL 的渲染上下文。
【解决方案3】:

...除了“真实”全屏之外,您可能还想支持“假”全屏模式——这对我们这些运行多显示器系统的人来说非常好。

【讨论】:

    【解决方案4】:

    就用户而言,全屏是指一个窗口占据了整个屏幕,以至于他们不再看到任何窗口边框或其他桌面内容。

    如您所知,并非所有全屏都是平等的。

    “正确”全屏是程序控制屏幕的地方。当游戏使用这种模式时,它可以改变你屏幕的分辨率。如果你曾经玩过一款老游戏,并且看到你的图标都乱七八糟,那就是;在玩游戏期间,您的桌面分辨率较低。

    使用“无边框全屏”,程序窗口会带有任何边框、标题栏和框架等,并且只是一个纯渲染的矩形。如果您随后将此渲染上下文设置为与您的桌面相同的大小,您将获得全屏效果。

    如今,无边框通常是对用户更友好的方式,因为其他程序仍然以图形方式存在,因此更容易“标出”。 “适当的”全屏让您可以完全控制硬件,因此理论上您的程序拥有更多功能,但这意味着您必须等待在您退出时重新初始化。

    您对渲染上下文的处理取决于您,所以是的,您可以使用它播放视频。无论您是否处于“正确”全屏状态,渲染代码都是一样的。

    至于切开适当的全屏窗口,我不确定,但我认为没有其他可看的,只有你的程序。

    至于什么win-api,只有一个windows api,但我想你的意思是,什么windowing library;由于这已经是一个很长的答案,我只想说这在很大程度上取决于您想要从中得到什么。

    如果您需要我澄清或扩展任何观点,请随时离开 cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多