我在閱讀 DX11的教程,但我主要通過metro風格的應用程序學習了DX11.1的編程。 隨着我繼續學習,我發現DX11.1中的一些功能不再適用於DX11.1,例如D3DX11CreateShaderResourceViewFromFile
,該教程用於加載紋理,但在DX11.1中我們沒有這個功能! 我的問題是如何在DX11.1中加載DDS紋理? 我要替換的功能在這個代碼,這樣我可以加載DDS質地:在directX中加載紋理11.1
hr = D3DX11CreateShaderResourceViewFromFile(d3d11Device, L"braynzar.jpg",
NULL, NULL, &CubesTexture, NULL);
// Describe the Sample State
D3D11_SAMPLER_DESC sampDesc;
ZeroMemory(&sampDesc, sizeof(sampDesc));
sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
sampDesc.MinLOD = 0;
sampDesc.MaxLOD = D3D11_FLOAT32_MAX;
//Create the Sample State
hr = d3d11Device->CreateSamplerState(&sampDesc, &CubesTexSamplerState);
由於它是一個.JPG,他應該在[DirectXTK](http://go.microsoft.com/fwlink/?LinkId=248929)中使用WICTextureLoader,但是......這是一個很好的去處。一定要看看[沒有D3DX的生活](http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx)。 –