问题标签 [directdraw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1036 浏览

graphics - 在 DDS 文件中,您可以检测 0/1 alpha 位的纹理吗?

在我的引擎中,我需要能够检测具有 0 alpha 纹素的 DXT1 纹理(例如,窗口框架的切口)。这对于我自己压缩的纹理很容易,但我不确定已经压缩的纹理。

有没有一种简单的方法可以从标题中判断 DDS 图像是否包含 alpha?

0 投票
3 回答
1066 浏览

opengl - 在同一应用程序的不同窗口中混合opengl和directdraw?

我正在开发一个有两个窗口的应用程序:

  • 窗口 1:渲染直接绘制表面
  • 窗口 2:我想让做纯 OpenGL 调用

我不想在同一个窗口中混合使用 OpenGL 和 DirectDraw。

我从 Open GL 常见问题解答 ( http://www.opengl.org/resources/faq/technical/mswindows.htm ) 中看到,您不能在同一个窗口中混合 API 调用。

所以,我的问题是:一个应用程序可以让一个窗口进行直接绘制而另一个进行 OpenGL 吗?

0 投票
2 回答
1507 浏览

c++ - DirectDraw 问题 - 将应用程序作为常规 Windows 应用程序运行

我正在开发一个视频录制应用程序,我想用徽标和录制计时器覆盖视频预览。

我尝试运行全屏应用程序,一切正常。然后我尝试将该应用程序作为常规 Windows 应用程序运行,但它返回了一个错误。

如果有办法修改它以将应用程序作为常规 Windows 应用程序运行,任何人都可以看看下面的代码吗?

0 投票
3 回答
7857 浏览

c++ - DDS 纹理加载

如何将 dds 纹理文件加载到 OpenGL 2dtexture 或立方体贴图纹理中?

0 投票
3 回答
12224 浏览

c# - 如何将 .dds 文件加载到图片框中?

如何在 C# 中将 .dds 纹理文件加载为图像?在谷歌上我找不到任何有用的东西。

你给我的样品信息越多,我就越容易理解。

0 投票
5 回答
4366 浏览

gdi - “独占” DirectDraw 调色板实际上并不是独占的

我们正在维护一个使用 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 调色板?

0 投票
1 回答
1685 浏览

windows-mobile - 在 Windows Mobile 编程中旋转图像

Windows Mobile 编程中是否有任何机制来旋转位图?

我想把它旋转到任何角度。

0 投票
2 回答
6720 浏览

compression - 我认为 *.DDS 文件是为了快速加载?

好的,所以我正在尝试权衡使用各种不同纹理压缩技术的利弊。我花费了 99.999% 的时间为使用 DirectX 的 Windows 机器编写 2D sprite 游戏。

到目前为止,我已经研究了带有 alpha-trimming 的纹理打包(SpriteSheets),这似乎是一种获得更多性能的好方法。现在我开始研究它们存储的纹理格式;目前所有内容都存储为 *.PNG。

我听说 *.DDS 文件很好,尤其是与 DXT5(/3/1,取决于任务)压缩一起使用时,因为纹理在 VRAM 中保持压缩?人们还说,由于它们已经是 DirectDraw 表面,因此它们的加载速度也快得多。

所以我创建了一个应用程序来测试它;我调用了 20 次以下的行,在每次调用之间释放纹理。

现在,如果我使用 DXT5 纹理尝试此操作,完成时间比加载简单 *.PNG 的时间长 5 倍。我听说如果你不生成 Mipmap,它会变慢,所以我仔细检查了一遍。然后我更改了用于生成 *.DDS 文件的程序,切换到 NVIDIA 自己的 nvcompress.exe,但没有任何效果。

编辑:我忘了提到文件(*.png 和 *.dds)都是相同的图像,只是以不同的格式保存。(相同的大小,alpha 的数量,一切!)

编辑 2:当使用以下参数时,它的加载速度几乎快了 2.5 倍,并且消耗的 VRAM 更少!

但是,我现在失去了纹理中的所有透明度,我查看了 DXT5 纹理,它在 Paint.NET 和 DirectX DDS 查看器中看起来很好。但是,当加载所有透明度时,会变成纯黑色。颜色键问题?

编辑 3:忽略最后一点,我很愚蠢,在我的“快速示例”中,我忘记在 D3DXSprite->Begin() 上启用 Alpha-Blending。嗬!

0 投票
1 回答
221 浏览

c++ - Internet Explorer 控件(或其他)呈现到 directdraw 表面

我的任务是修改现有的 c++ 代码库,该代码库使用 directdraw 作为其 UI。是否可以使用呈现到(现有)directdraw 表面之一的浏览器控件?如果是这样,谁能指出我如何开始的正确方向?(或替代方法)

大家好,

海梅

0 投票
2 回答
5524 浏览

c++ - DDS DXT1 在 OpenGL 中加载,崩溃

知道我的代码有什么问题吗?当我执行 glCompressedTexImage2D() 程序只是崩溃(出现 Windows XP 崩溃消息......)

我试图在没有 mipmap 的情况下加载 DDS 图像,图像格式是 DDS DXT1

我错过了一些包含文件,还是我做错了什么?我从以下网址下载了包含的文件:http: //sourceforge.net/projects/glew/files/glew/1.5.1/glew-1.5.1-win32.zip/download

我的 .exe 所在的文件夹中有 glew32.dll。

下面的代码只有我更改为能够加载 DDS 图像的部分: