问题标签 [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.
windows - DirectDraw 输出适配
我正在开发一个为旧游戏添加功能的项目;这个想法是添加选项以窗口化运行(最初它只支持 800x600 全屏)。
到目前为止,我修改了directDraw的初始化以删除全屏独占模式并使其能够与GDI一起使用,创建了一个剪辑器并正确设置了所有内容,游戏将全屏模式设置为8位色深,窗口运行会导致它输出像这样的图像垃圾:
到目前为止,我尝试使用 GetDIBits 和 SetDIBits 做一些技巧来解决这个问题,但我没有成功。
该游戏适用于一个非常旧的 directDraw 版本(根本没有关于这个版本的文档,我的大部分工作都是基于猜测和测试)。
游戏使用 BltFast 将信息显示到屏幕上。
这是为尝试使用 DIBits 解决问题而编写的一段代码
PrimarySurface = 游戏主表面本身
有什么方法可以通过更改对 BltFast 的调用以正确输出到屏幕来直接从缓冲区转换 8 位颜色格式?
将输出重新路由到另一个 DC 然后使用 GetDIBits/SetDIBits 修复图像是否是更好的解决方案?
c++ - 在屏幕上绘制图片的最快方法
我需要在 Windows 机器的屏幕上绘制图片流(实时视频),并且绘制速度必须尽可能快(即延迟最低)。我尝试了 DirectDraw 从屏幕外表面到主表面的 blitting,它引入了大约 60 毫秒的延迟,这太高了。我的显示器刷新率为 60Hz。
有更快的方法来完成这项任务吗?谢谢
gdi - 直接写入是否与 GDI 区域等效
在经典的 Windows GDI 中有一个称为“区域”的功能。基本上,您可以通过此功能组合简单的几何形状来构造复杂的形状。一个区域有一个句柄,可以调用到 dc 中进行填充或用作剪辑区域。
DirectDraw 是否具有等效功能,如果有,请提供门口资源的链接。在这一点上,我只是在寻找进入这个主题的方法。
[没有示例代码发布,因为它不适合这个问题]
python - LibVlc 不能在 Python 的 Qt 框架中使用
所以我试图将一些 VLC 媒体播放器嵌入到他们单独的 QTFrames 中。一切都在python中完成。但是由于某种原因,官方示例不想工作(在此处找到)
我的代码如下所示:
如果我取消注释这些行,我会收到以下错误:“directdraw vout display error: Win32VoutCreateWindow RegisterClass FAILED (err=1410)”
我正在使用 Windows 64 位和 Python 3.6
c++ - DirectDraw Surface GetDC() 的更快替代方案?
问题
我正在尝试将 Direct2D 内容绘制到 DirectDraw 表面(后缓冲区),这部分很好。问题是在 DirectDraw 表面(在现代 pc 上)上使用 GetDC() 的成本,它锁定并获取设备上下文,然后在 Direct2D 绘图发生之前将其用于与 Direct2D 的 BindDC()。GetDC 和 ReleaseDC 的成本如此之高,如果每帧完成一次,我将获得 15FPS 的感觉。
是否有更快或替代的方法来获取 DirectDraw 表面上的 Get/ReleaseDC() 或以某种方式对其进行缓存以避免无法承受的性能?
我在旧 DirectDraw 上构建的旧游戏的背景故事 ,源丢失,我正在尝试使用挂钩来升级图形 API。我最终希望将所有 directdraw API 调用移至 direct2d。