gpt4 book ai didi

winapi - Win32 : How to determine if DirectDraw is enabled?

转载 作者:行者123 更新时间:2023-12-02 09:01:23 25 4
gpt4 key购买 nike

当使用CachedBitmaps时在 GDIPlus 中,如果 Windows 视频“硬件加速”降低太多,则会出现图形损坏 - 例如禁用 DirectDraw:

enter image description here

硬件加速有六个级别:

  • 禁用所有加速
  • 禁用除基本加速之外的所有加速。 (服务器计算机上的默认设置)
  • 禁用所有 DirectDraw 和 Direct3D 加速,以及所有光标和高级加速
  • 禁用所有光标和高级绘图加速
  • 禁用光标和位图加速
  • 所有加速均已启用(桌面计算机上的默认设置)

如果禁用 DirectDraw,则在 GDI+ 中使用 DrawCachedBitmap 将导致图形损坏。对我来说使用较慢的 DrawImage() 很容易API(如果未启用 DirectDraw) - 但我必须能够检测 DirectDraw 已禁用。

如何以编程方式检查 DirectDraw 是否已启用?

<小时/>

问题是:dxdiag 如何做到这一点:

alt text

另请参阅

KB191660 - DirectDraw or Direct3D option is unavailable ( archive )

最佳答案

如果您下载最新的DirectX SDK (我确信旧的 sdk 有类似的示例)有一个查询 DXDIAG 信息的示例。

示例位于(SDK根目录)\Samples\C++\Misc\DxDiagReport

dxdiaginfo.cpp中注意的方法

CDxDiagInfo::CDxDiagInfo
CDxDiagInfo::Init
CDxDiagInfo::QueryDxDiagViaDll
CDxDiagInfo::GetDisplayInfo

如果运行该程序,它会输出一个巨大的值列表。我认为您感兴趣的值是 pDisplayInfo->m_szDDStatusEnglish

关于winapi - Win32 : How to determine if DirectDraw is enabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com