- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在维护一个使用 DirectDraw 的全屏 256 色图形模式的旧视频游戏。问题是,某些在后台运行的应用程序有时会在游戏运行时尝试更改系统调色板,从而导致图形损坏。
我们可以(有时)通过处理 WM_PALETTECHANGED 消息来检测何时发生这种情况。几个更新版本之前,我们添加了日志记录(只记录窗口标题/类/进程名称),这有助于用户识别有问题的应用程序并关闭它们。 MSN Live Messenger 是一个常见的罪魁祸首。
当我们发现 Windows Vista(和 7)“自行”完成时,问题变得更糟了。 WM_PALETTECHANGED 参数指向 CSRSS 和桌面窗口。在 Vista 中,一种通常有效的解决方法是打开任何文件夹(计算机、文档等)并在运行游戏时将其保持打开状态。听起来很荒谬,但它奏效了——在大多数情况下。在 Windows 7 中,即使是这种解决方法也不再有效。用户发现停止某些服务(Windows 更新和索引服务)也解决了某些配置上的问题。
前段时间我刚开始尝试随机的东西,希望能找到解决方案。我发现在设置 DirectDraw 调色板(使用 IDirectDrawPalette::SetEntries)之前设置 GDI 调色板(使用 Create/SelectPalette)会在调色板损坏后恢复它(WM_PALETTECHANGED 处理程序)。 SetSystemPaletteUse 和在主表面上调用 SetPalette 提供了更多帮助。但是,当应用程序试图窃取调色板时,仍然存在可察觉的闪烁,这在淡入淡出期间尤为突出。
问题:有没有办法获得一个“真正的”专属调色板,只要我们的游戏保持焦点,它就完全不允许其他应用程序更改 Windows 调色板?
最佳答案
您可以做的是一个“简单”的解决方法。由于您的游戏是旧游戏,因此可能无法与当前硬件匹配,这就是此技巧有效的原因:
关于gdi - "Exclusive"DirectDraw 调色板实际上不是独占的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1054365/
我正在尝试实现一种“独占消费者”或“独占队列”,以避免最终用户必须固定任何内容:代理将选择一个消息消费者来获取队列的所有消息,以确保排序,如果该消费者失败,代理将自动故障转移并选择另一个消费者。 我想
我想从多行文本字段中排除特定模式。我有一个捕获该模式的正则表达式,所以现在我想创建一个匹配除该模式之外的所有内容的表达式。对此的一般方法是什么?出于某种原因,像这样的负面前瞻:^(.(?!expres
这是我的view.jsp。当我单击 view.jsp 上的超链接时,我想在弹出窗口中显示 jpop.jsp 页面?谁能告诉我这可能吗?我是 liferay 的新手。我在 LiferayWindowSt
我想从多行文本字段中排除特定模式。我有一个捕获该模式的正则表达式,所以现在我想创建一个匹配除该模式之外的所有内容的表达式。对此的一般方法是什么?出于某种原因,像这样的负面前瞻:^(.(?!expres
我正在使用一组 jQuery 选择器在多个不同的页面上插入一些内容;然而,有些页面具有多个选择器,因此内容会在页面上插入多次。例如: $('div.rColInnerL:first, div.box3
我们正在维护一个使用 DirectDraw 的全屏 256 色图形模式的旧视频游戏。问题是,某些在后台运行的应用程序有时会在游戏运行时尝试更改系统调色板,从而导致图形损坏。 我们可以(有时)通过处理
我有一个现有的应用程序,它在数据库中有以下实体 客户 发票组 销售组 一个客户可以属于多个组。目前这是按以下方式映射的 Customer table - cid (Pk) - fname - s
我想知道您是否可以以一种只有特定的其他方法 B 才能调用 A 的方式声明方法 A。 蜂鸣的原因是我想限制一种方法从 main 调用蜂鸣(因为在大学里有奇怪的测试算法)。如果 main 调用了这个方法(
我目前正在使用 Ruby 编写 Ruby 解析器,更准确地说是使用 Parslet,因为我认为它比 Treetop 或 Citrus 更容易使用。我使用官方规范创建我的规则,但有些语句我无法编写,因为
SQL Fiddle 在这里:http://sqlfiddle.com/#!2/a2e41/8 我有一个查询执行多项检查:列 uidto 或 uidfrom 是否包含给定值。这工作正常,但只要我想排除
我正试图找到用 C 语言编写 XNOR 门的最有效方法。 if(VAL1 XNOR VAL2) { BLOCK; } 有什么建议吗? 谢谢。 最佳答案 有两个操作数,这很简单: if (val
来自 API 的信息非常稀少 - 还考虑到 Thread.critical 似乎没有记录。 Wraps a block in Thread.critical, restoring the origin
题目地址:https://leetcode.com/problems/exclusive-time-of-functions/description/ 题目描述 Given the running
例如:按 userid, sdate, edate 索引 userid sdate edate 001 2019-01-01 2019-01-30 如果我像这样插入新数据: u
我们使用的是 sonarqube 5.1.1,通常“应用项目排除”步骤非常非常慢。有时在 1-2.5 小时的范围内。 我们有“全局源文件排除”来排除 2 种模式:**/swagger-ui/****/
我在 symfony 项目上工作,我想从 中排除一些生成的代码 Sonar 分析 . 我想排除一个以此路径命名的文件夹: src/应用程序/奏鸣曲 . 我尝试了许多 Sonar 排除的可能性,但徒劳无
这个问题已经有答案了: Combine whitelist and blacklist in java regex expression (3 个回答) 已关闭 7 年前。 我想匹配 a 和 z 之间
我知道排除单词的正则表达式,无论如何,它应该是 (!?wordToIgnore|wordToIgnore2|wordToIgnore3) 但我有一个现有的、复杂的正则表达式,我需要将其添加,但我对如何
我正在尝试为“Little book of Semaphores”中的“Exclusive Queue”问题编写一个解决方案。问题表述如下: 想象一下,线程代表舞厅舞者,两种舞者(领导者和追随者)在进
我正在我们的软件中配置 Maven,它运行得非常好。我有一些细节需要修复,但它们没有按照我想要的方式工作,我需要知道我能做什么。具体来说,我们都使用 Eclipse,并且在之前的配置(没有 Maven
我是一名优秀的程序员,十分优秀!