草庐IT

DirectDraw

全部标签

windows - 针对 2D 游戏的大多数 Windows 版本?

如果要为大多数版本的Windows编写游戏代码,应该使用哪个API?我知道DirectDraw可以从NT4及更高版本运行(尽管DirectDraw是在NT4上使用GDI模拟的)。但是,我听说DirectDraw在较新版本的Windows中已被弃用?我可以恢复到只使用GDI,但是很难完全消除闪烁和撕裂,因为没有在缓冲区之间翻转的双缓冲。我应该选择Direct3D还是DirectDraw?或者有什么方法可以完全消除GDI中的闪烁?如果Direct3D是答案,那么大多数平台支持哪个版本? 最佳答案 除非您确定您永远不想将您的游戏移植到任何

windows - 我需要跨平台编写一个 .DDS 文件,有人可以给我举个例子吗?

我需要创建一个.DDS文件,其中包含可在OSX和Windows上运行的代码。虽然格式看起来不难,但我还是想要一个写文件的例子。请注意,我不需要阅读它,只需编写即可。C或C++和RGBA位图。 最佳答案 最后我只好写了一个RAW文件,然后用GraphicConvertor(mac)读写DDS文件。我认为Photoshop也可以做到。RAW文件只是直接写入二进制文件的RGB或RGBA或类似格式。然后在阅读应用程序中,您告诉它尺寸,以便它可以读入。然后您导出到任何内容。这不是一个完美的解决方案,但它可以满足我的需要。

windows - DirectDraw 游戏可以在不锁定的情况下访问后备缓冲区吗?

我正在修改一个旧的WindowsDirectDraw游戏。我已经创建了一个DirectDraw代理。它记录每个IDirectDraw和IDirectDrawSurface调用。后台缓冲区在一次BltFast调用后看起来像这样:像这样在下一个BltFast调用之前:这些图片在任何BltFast调用之前和之后通过Locking-copying-Unlocking后备缓冲区转储。在这两个BltFast调用之间没有其他IDirectDraw(Surface)调用,尤其是没有Lock/Unlock调用。这怎么可能? 最佳答案 据我所知,游戏似

c++ - 替换遗留的 DirectDraw 代码

昨天我找到了多年前用C++、Win32API和DirectDraw7开发的俄罗斯方block游戏的源代码。我尝试构建解决方案但没有成功,因为最近的DirectXSDK(June2010)不再包含DDraw.h和DDraw.lib。是否有任何推荐的方法(希望有示例)将代码从DirectDraw升级到更新的API?或者我应该只安装旧的DirectXSDK? 最佳答案 如果您使用DirectDrawblit功能,那么移植它将会是一项艰巨的任务。在我看来,您最好的选择是将其移植到GDI。然而,这可能意味着编写您自己的blit函数。如果您无法

windows - DirectDraw + 分层窗口颜色键?

我正在使用WS_EX_LAYERED创建一个窗口,并使用SetLayeredWindowAttributes()为其设置颜色键。我可以通过在窗口内使用FillRect()绘制一个简单的矩形来验证此颜色键确实在窗口中创建了一个透明补丁。但是,当我使用DirectDraw在窗口中绘图时,这不起作用。我在窗口上创建了一个IDirectDrawSurface7并向其添加了一些像素Blt()。一些像素用颜色键着色,但我不认为它们是透明的,它们只是出现在颜色键中。DirectDraw表面是否存在与分层窗口颜色键控冲突的固有因素​​?当我使用SetLayeredWindowAttributes()设