vir*_*uso 1 directx directx-11 directx-10
从directx 10到11有什么变化?我已经在directx 10中编写了一些代码,我想将其更改为directx 11.这仅仅是关于质量而我只能通过更改headrs和dll文件或函数以及编码方式来改变它吗?ING.
首先,我需要说的是,如果你只是改变你的D3D10DoSomething()功能,什么都不会改变D3D11DoSomething().他们会做同样的事情.没有被动的收获.您必须明确使用新功能才能使您的应用更好.D3D10没有的那些功能:例如硬件镶嵌,计算着色器,许多其他东西.要编码.
所以,主要的问题是"你真的需要这个功能"吗?或者,也许,"你以后会需要这些功能吗?" 当您看到古老的D3D10代码时,您的编码是否会笑?
如果答案是肯定的:
DirectX 10到11移植非常简单.与DirectX 9到10移植相比,这只是一个笑话.
以下是将D3D10移植到D3D11时要做的简短而非详尽的清单:
#include <d3d10*>为#include <d3d11*>d3d10*.lib为d3d11*.lib链接器选项设备和上下文创建:
Create*())和上下文负责状态更改功能(大多数方法是Set*()/ Get*()).D3D10CreateDevice*函数(现在已经成为D3D11CreateDevice*)创建设备的位置,添加其他ID3D11DeviceContext参数并添加与之相关的参数D3D_FEATURE_LEVEL.(更多关于这里的功能级别)device->ChangeState()来电deviceContext->ChangeState()其他的东西:
0,直到你不需要这个功能.如果您遇到与参数数量相关的编译器错误或"无法转换参数..",只需在DirectX 11参考中找到此函数,看看是否必须添加额外的零参数=)着色器:
好吧,大部分都完成了 欢迎来到D3D11世界=)