在应用程序启动时调用 XNA GraphicsDeviceManager.ApplyChanges() 会导致闪烁

2023-12-10

我有一个函数,其中包含以下代码:

GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferWidth = width;
GameStateManagementGame.GraphicsDeviceManager.PreferredBackBufferHeight = height;
GameStateManagementGame.GraphicsDeviceManager.IsFullScreen = isFullScreen;
GameStateManagementGame.GraphicsDeviceManager.ApplyChanges();

当在应用程序启动时调用它时,如果 isFullScreen = true,即使宽度和高度与桌面分辨率相同,也会出现一到两秒的非常明显的屏幕闪烁。如果我没有 ApplyChanges();调用这不会发生(但设置确实会应用)。如果我在游戏完全开始后调用该函数而没有调用 ApplyChanges(),则不会应用设置。

现在我可以通过在启动时添加一些内容来跳过 ApplyChanges() 调用来解决这个问题,但我想知道为什么会发生这种情况。

我设法找到的有关此问题的唯一信息表明,如果您使用与桌面相同的分辨率或提供了过于复杂和损坏的解决方法,则不应发生闪烁。

所以我的问题是上述行为的原因是什么以及最好的解决方法是什么?


您设置的设置GraphicsDeviceManager适用于这些情况:

  1. 如果你打电话ApplyChanges()
  2. 如果你打电话ToggleFullScreen()
  3. By Game when Game.Run()被调用(它创建图形设备)

值得注意的是,修改任何设置都会not使这些设置立即应用。

闪烁的可能原因是您正在执行#3,然后立即执行#1(您连续两次应用设置)。

对于初始启动,您应该在上设置正确的设置GraphicsDeviceManager游戏类的构造函数中的实例。那么这些设置将是正确的Game.Run()叫做。

Use ApplyChanges()仅当用户在游戏运行时更改设置时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在应用程序启动时调用 XNA GraphicsDeviceManager.ApplyChanges() 会导致闪烁 的相关文章

随机推荐

  • 使用回调函数报告堆栈回溯

    假设我有以下内容 typedef struct char name char binding int address Fn Symbol definition of function symbol static Fn Symbol fnSy
  • 如何让我的应用程序检查 PC 上是否安装了 Adob​​e flash 播放器?

    我的应用程序需要 Adob e Flash Player 才能正常运行 并且我需要它来检查它是否已安装 那么如何让我的应用程序检查 PC 上是否安装了 Adob e flash 播放器呢 我的程序是用C 编写的 检查此注册表项是否存在 HK
  • 如何在android中的父级可扩展列表中添加图像?

    是否可以在可扩展列表中自定义子项 与 一起工作SimpleExpandableListAdapter一点也不简单 这里有一些代码可以帮助您入门 假设您正在使用ExpandableListActivity 在这个例子中 我们使用标准andro
  • Sublime Text 3、rbenv、测试单元、RubyTest 和 Spring 正确配置以使测试正常工作

    所以我设置了 RubyTest Sublime Text 3 并且工作正常 我在让 spring 在 RubyTest 中工作时遇到问题 有这样一个神秘的设定 check for spring false 但是当我设置为 true 并运行测
  • 重命名 Spring csrf 令牌变量

    我的应用程序在另一个门户应用程序下运行 两者都是在 spring 中实现的 并且都使用 csrf 安全性 我的需要基本上是更改 csrf 令牌在会话中的命名方式 以便两个令牌都可以正常工作而不会发生冲突 到目前为止 我尝试的是创建另一个令牌
  • 处理大数据的 XMLHttpRequest 响应

    使用 Chrome 我设置了XMLHttpRequest const xhr new XMLHttpRequest xhr open method url true xhr onreadystatechange gt if xhr read
  • 为什么我们使用MapSqlParameterSource

    我是 Spring 世界的新手 在上面的代码中我理解查询 但我不明白为什么 使用 new MapSqlParameterSource 用户名 用户名 public boolean exists String username return
  • 何时使用 Sqoop --create-hive-table

    谁能说出两者之间的区别create hive table hive import方法 两者都会创建一个 Hive 表 但各自的意义是什么 配置单元导入命令 hive import命令自动填充 hive 元存储中填充表的元数据 如果Hive中
  • 如何设置从javascript打印的份数[重复]

    这个问题在这里已经有答案了 我正在尝试使用 javascript 的打印方法打印文档 现在我想设置打印份数 默认情况下它将打印 1 份 我想将份数设置为两份 2 份 是否可以通过js代码来做到这一点 我们可以通过打印机设置进行设置 但它会打
  • 使用 nodemailer 通过 Node.js 发送电子邮件不起作用

    我已经在本地设置了一个基本的 NodeJS 服务器 使用 nodemailer 模块 http localhost 8080 只是为了测试服务器是否真的可以发送电子邮件 如果我正确理解 SMTP 选项 如果我错了 请纠正我 我可以尝试从我的
  • 2048 游戏的正确方块移动

    我决定制作 2048 命令行版 但我在获得正确的图块移动方面遇到困难 我当前的结构是棋盘是一个 2D 整数数组 4x4 当接收到输入时 它会尝试将每个图块推向该方向 忽略值为 0 的图块 如果它注意到变化 它将重新开始 因为底行的图块必须一
  • 如何访问对象标签中加载的 HTML 元素?

    例如 使用 jQuery 获取文本输入值 username val 我曾尝试过这个this问题 这是我的代码 div div window load function siteloader html setTimeout function
  • AWS S3 复制/粘贴不复制元数据

    使用 Amazon Web 界面 可以将 S3 对象从一个存储桶复制到另一个存储桶 但是 粘贴的对象不具有原始对象的元数据 如何同时粘贴元数据 我猜测 CLI 可以做到这一点 但我不知道如何做到 请注意 元数据必须与对象一起创建 以便在 S
  • 使用无表单的Post方法发送数据

    我想将数据发送到 API 数据包括简单的变量 用户名 密码 电子邮件等 问题是 O 想使用 POST 方法向此发送数据 我在Google上搜索了这个问题 每个人都说去CURL 什么是卷曲 它是函数 脚本 API 还是什么 还有其他方法吗 我
  • VBA:为什么使用属性而不是子例程或函数?

    为什么我们需要使用财产Let Get and Set在 VBA 类中 我们可以使用子例程或函数简单地传递和返回参数吗 我认为简短的答案是属性是类的特征 而方法 子例程 是操作 我对此的解释是 属性是 形容词 方法是 动词 我们可以做一个类比
  • 在 C# 中反序列化对象列表

    I Use Json转换序列化对象并将其保存在数据库中 这是我保存在数据库中的序列化字符串的示例 matId 1 value 44 matId 2 value 55 matId 4 value 77 现在 当我从数据库获取这个字符串时 它有
  • Angular 2+ 应用程序上的嵌入式 Twitter 小部件仅在首页加载时显示

    如果我完全复制 Twitter 文档中的内置函数 https dev twitter com web javascript loading 进入 ngAfterViewInit 函数 但是当我切换路线时 小部件也会消失 以下是仅适用于第一页
  • NotificationHubUnauthorizedException:Azure 通知中心注册未经授权

    所以我正在尝试 Azure 上的通知中心 我已经根据这篇博文 我已经在 Android 代码中完成了 GCM 设置 因此我有一个有效的 regId String connectionString Endpoint sb
  • 扩展散点图中的 x 和 y 轴长度,d3js

    我正在尝试延长 x 和 y 轴长度并在末尾添加箭头 这是我的代码和插件 我需要 x 轴延伸到 4 6 之外 y 轴延伸到 AS 之外 并在末尾添加一个箭头 请帮忙 https plnkr co edit tA6oyKQCCmhNadbARR
  • 在应用程序启动时调用 XNA GraphicsDeviceManager.ApplyChanges() 会导致闪烁

    我有一个函数 其中包含以下代码 GameStateManagementGame GraphicsDeviceManager PreferredBackBufferWidth width GameStateManagementGame Gra