什么在DirectX 12中替换了#include <d3dx9tex.h>?

时间:2016-10-27 13:18:58

标签: include directx-9 directx-12

我正在使用一本书来处理DirectX 9,示例#include d3dx9tex.h intellisense指示此文件不存在,因此hResult = D3DXGetImageInfoFromFile(filename.c_str(), &imageInfo);也显示错误。我安装了DirectX 12。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

所有Direct3D 9编程书籍和教程都假设您使用的是DirectX SDK,您可以在其中找到D3DX支持库。 DirectX SDK本身与Direct3D 9一样遗留.D3DX9,D3DX10和D3DX11已弃用。请参阅Where is the DirectX SDK?

如果您有Windows 10(DirectX 12需要)或Windows 8.x或Windows 7,那么我的建议是学习Direct3D 11.如果您尝试定位Windows XP系统,Direct3D 9今天才有用,尝试使用Windows 8.x或Windows 10上的Direct3D 9进行开发有很多注意事项.Direct3D 12是一个专业的图形API,假设您已经完全能够编写Direct3D 11应用程序。一个好的起点是tutorials DirectX Tool Kit。您根本不需要传统的DirectX SDK来构建Direct3D 11应用程序,因为VS 2012,VS 2013和VS 2015都包含所有头文件,库和HLSL编译器。

另请参阅Living without D3DXDirectX SDK Samples CatalogDirectX SDK Tools CatalogDirectX SDKs of a certain ageThe Zombie DirectX SDK

答案 1 :(得分:0)

d3d9helper.h(所有Windows SDK中都包含) 现在严格来说,除非您打算支持Windows的较早版本,否则应该使用更现代的DirectX。

请记住,Windows 7/8/10同时支持DirectX 11和12,如果要专门为Windows 10发布某些功能,则只需使用DirectX 12 ...起初可能会有些困难。从开发人员的角度来看,从硬件和管道的控制角度来看,它要强大得多(从开发人员的角度来看)。