小编Bug*_*her的帖子

d3d->CreateDevice 中的 D3DERR_INVALIDCALL 导致 Allegro 5 D3D 程序启动时窗口闪烁

我正在调试在创建启用多重采样的 Allegro 5 Direct3D 窗口时窗口创建闪烁问题。我已将问题范围缩小到 allegro 的 d3d_disp.cpp 源文件中的窗口创建问题。但是,我无法从 DirectX 获得任何调试输出。闪烁仅发生在 D3D 模式(而非 OpenGL)下并且仅在启用多重采样时发生。另请注意,这只发生在 NVIDIA GPU 上运行程序时,而不是在我的集成 Intel 上运行程序时。

我运行的是 Windows 10。

我已尝试在 Visual Studio 2017 中对此进行调试,但它无法捕获 DX 的调试输出。我从 2010 年 6 月开始安装 DirectX SDK 时安装了 DirectX 调试符号。

我已经尝试重建 allegro 并链接到 gcc 中的 libd3dx9d.a,但我仍然无法进入 directx 函数调用,并且符号未加载。从 2010 年 6 月开始,MinGW-W64 GCC 8.1 或 DirectX SDK 中没有可用的 libd3d9d.a(注意 d 表示调试)库。

我尝试通过 PIX 运行我的程序,但它给了我一个无法解决的不兼容错误。

这是可测试的 allegro 5 示例代码:

#include <allegro5/allegro.h>
#include <allegro5/allegro_color.h>
#include <allegro5/allegro_primitives.h> 
#include <allegro5/allegro_direct3d.h>

#include <cstdio>
#include <climits>

int main(int …
Run Code Online (Sandbox Code Playgroud)

c++ debugging allegro5 visual-studio-debugging directx-9

5
推荐指数
1
解决办法
1765
查看次数