【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2382|回复: 0

[转帖]开启Direct3D调试模式!

[复制链接]
发表于 2008-7-12 03:36:15 | 显示全部楼层 |阅读模式

声明:此文章翻译自DirectX 9.0C OCT 2006 SDK的Direct3D For C++帮助文档的Enabling Direct3D Debug Information主题,前面部分有些没有翻译的。

在#include <D3D9.h>语句前面加上以下这条语句即可:

#define D3D_DEBUG_INFO

关闭调试时查看D3D Device对象的情况
D3D_DEBUG_INFO1[1].gif

开启调试时查看D3D对象的情况
D3D_DEBUG_INFO2[1].gif

为外部调试使用调用堆栈

当 Direct3D 调试模式开启之后,你可以在任何时候查看对象的调用堆栈。这会导致你的程序非常慢,但是可以使用此功能检查资源泄漏(内存泄漏的一种)。开启调用堆栈,设置这个注册表键值为1即可:

\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Direct3D\\
D3D9Debugging\\EnableCreationStack

开启D3D调试模式,然后重建你的工程,系统将会给你访问这个附加的变量:
LPCWSTR CreationCallStack;

这个变量存储着每次创建对象时的调用堆栈。这会导致你的程序非常慢,但是可以使用此功能检查资源泄漏。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-2-6 06:45

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表