Skip to content

Commit 41c00fb

Browse files
committed
modify dx11tutorials
1 parent de5837e commit 41c00fb

File tree

3 files changed

+56
-46
lines changed

3 files changed

+56
-46
lines changed

DX11Tutorial2/dxentry.cpp

+14-14
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ HINSTANCE g_hInstance;
2121

2222
// DXGI objects
2323
IDXGIFactory7* g_DXGIFactory;
24-
IDXGISwapChain* g_DXGISwapChain;
24+
IDXGISwapChain1* g_DXGISwapChain;
2525

2626
// D3D11 device objects
2727
ID3D11Device* g_D3D11Device;
@@ -38,7 +38,7 @@ D3D11_VIEWPORT g_D3D11ViewPort;
3838
int g_ElementDescCount;
3939
D3D11_INPUT_ELEMENT_DESC* g_D3D11InputElementDescArray;
4040

41-
inline HRESULT GetDXGIAdaptersInline(IDXGIFactory1* factory, int* adapterCount, IDXGIAdapter1** dxgiAdapterArray)
41+
inline HRESULT GetDXGIAdaptersInline(IDXGIFactory7* factory, int* adapterCount, IDXGIAdapter1** dxgiAdapterArray)
4242
{
4343
std::vector<IDXGIAdapter1*> dxgiAdapters;
4444
IDXGIAdapter1* dxgiAdapter;
@@ -51,24 +51,24 @@ inline HRESULT GetDXGIAdaptersInline(IDXGIFactory1* factory, int* adapterCount,
5151
return *adapterCount > 0? S_OK: E_FAIL;
5252
}
5353

54-
inline HRESULT CreateSwapChainInline(IDXGIFactory* factory, ID3D11Device* device, IDXGISwapChain** swapChain, UINT width, UINT height, UINT maxFrameRate, bool isHDR10)
54+
inline HRESULT CreateSwapChainInline(IDXGIFactory7* factory, ID3D11Device* device, HWND hWnd, UINT width, UINT height, bool isHDR10, IDXGISwapChain1** swapChain)
5555
{
56-
DXGI_SWAP_CHAIN_DESC swapChainDesc;
56+
DXGI_SWAP_CHAIN_DESC1 swapChainDesc;
5757
memset(&swapChainDesc, 0, sizeof(swapChainDesc));
5858

59-
swapChainDesc.BufferCount = 1;
60-
swapChainDesc.BufferDesc.Width = width;
61-
swapChainDesc.BufferDesc.Height = height;
62-
swapChainDesc.BufferDesc.Format = isHDR10 ? DXGI_FORMAT_R10G10B10A2_UNORM: DXGI_FORMAT_R8G8B8A8_UNORM;
63-
swapChainDesc.BufferDesc.RefreshRate.Numerator = maxFrameRate;
64-
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
59+
swapChainDesc.BufferCount = 2;
60+
swapChainDesc.Width = width;
61+
swapChainDesc.Height = height;
62+
swapChainDesc.Format = isHDR10 ? DXGI_FORMAT_R10G10B10A2_UNORM: DXGI_FORMAT_R8G8B8A8_UNORM;
6563
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
66-
swapChainDesc.OutputWindow = g_hWnd;
6764
swapChainDesc.SampleDesc.Count = 1;
6865
swapChainDesc.SampleDesc.Quality = 0;
69-
swapChainDesc.Windowed = TRUE;
66+
swapChainDesc.Stereo = FALSE;
67+
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_SEQUENTIAL;
68+
swapChainDesc.Scaling = DXGI_SCALING_STRETCH;
69+
swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
7070

71-
return factory->CreateSwapChain(device, &swapChainDesc, swapChain);
71+
return factory->CreateSwapChainForHwnd(device, hWnd, &swapChainDesc, nullptr, nullptr, swapChain);
7272
}
7373

7474
inline HRESULT CreateRenderTargetViewInline(ID3D11Device* device, ID3D11Texture2D* backBuffer, ID3D11RenderTargetView** rtv)
@@ -101,7 +101,7 @@ HRESULT DXDeviceInit(UINT width, UINT height, UINT maxFrameRate, bool debug)
101101
&g_D3D11Device, &maxSupportedFeatureLevel, &g_D3D11ImmediateContext);
102102
FAILED_MESSAGE_RETURN(hr, L"fail to create D3D11Device..");
103103

104-
hr = CreateSwapChainInline(g_DXGIFactory, g_D3D11Device, &g_DXGISwapChain, width, height, maxFrameRate, false);
104+
hr = CreateSwapChainInline(g_DXGIFactory, g_D3D11Device, g_hWnd, width, height, false, &g_DXGISwapChain);
105105
FAILED_MESSAGE_RETURN(hr, L"fail to create SwapChain..");
106106

107107
ID3D11Texture2D* backBuffer = nullptr;

DX11Tutorial7/Tutorial7.hlsl

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ cbuffer Tutoiral7OnFrameCB : register(b2)
1818
struct VS_INPUT
1919
{
2020
float3 pos : POSITION;
21+
float3 normal : NORMAL;
2122
float2 uv : TEXCOORD0;
2223
};
2324

DX11Tutorial7/dxentry.cpp

+41-32
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ ID3D11SamplerState* g_D3D11LinearSampler;
6565
struct Tutorial7Vertex
6666
{
6767
DirectX::XMFLOAT3 position;
68+
DirectX::XMFLOAT3 normal;
6869
DirectX::XMFLOAT2 uv;
6970
};
7071

@@ -374,7 +375,7 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
374375
hr = g_D3D11Device->CreateVertexShader(VSBlob->GetBufferPointer(), VSBlob->GetBufferSize(), nullptr, &g_D3D11VertexShader);
375376
FAILED_MESSAGE_RETURN(hr, L"fail to create vertex shader..");
376377

377-
g_ElementDescCount = 2;
378+
g_ElementDescCount = 3;
378379
g_D3D11InputElementDescArray = new D3D11_INPUT_ELEMENT_DESC[g_ElementDescCount];
379380
g_D3D11InputElementDescArray[0].SemanticName = "POSITION";
380381
g_D3D11InputElementDescArray[0].SemanticIndex = 0;
@@ -384,14 +385,22 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
384385
g_D3D11InputElementDescArray[0].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
385386
g_D3D11InputElementDescArray[0].InstanceDataStepRate = 0;
386387

387-
g_D3D11InputElementDescArray[1].SemanticName = "TEXCOORD";
388+
g_D3D11InputElementDescArray[1].SemanticName = "NORMAL";
388389
g_D3D11InputElementDescArray[1].SemanticIndex = 0;
389-
g_D3D11InputElementDescArray[1].Format = DXGI_FORMAT_R32G32_FLOAT;
390+
g_D3D11InputElementDescArray[1].Format = DXGI_FORMAT_R32G32B32_FLOAT;
390391
g_D3D11InputElementDescArray[1].InputSlot = 0;
391392
g_D3D11InputElementDescArray[1].AlignedByteOffset = 12;
392393
g_D3D11InputElementDescArray[1].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
393394
g_D3D11InputElementDescArray[1].InstanceDataStepRate = 0;
394395

396+
g_D3D11InputElementDescArray[2].SemanticName = "TEXCOORD";
397+
g_D3D11InputElementDescArray[2].SemanticIndex = 0;
398+
g_D3D11InputElementDescArray[2].Format = DXGI_FORMAT_R32G32_FLOAT;
399+
g_D3D11InputElementDescArray[2].InputSlot = 0;
400+
g_D3D11InputElementDescArray[2].AlignedByteOffset = 24;
401+
g_D3D11InputElementDescArray[2].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
402+
g_D3D11InputElementDescArray[2].InstanceDataStepRate = 0;
403+
395404
hr = g_D3D11Device->CreateInputLayout(
396405
g_D3D11InputElementDescArray, g_ElementDescCount,
397406
VSBlob->GetBufferPointer(), VSBlob->GetBufferSize(), &g_D3D11VertexLayout
@@ -413,35 +422,35 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
413422
g_VertexSize = sizeof(Tutorial7Vertex);
414423
Tutorial7Vertex vertices[] =
415424
{
416-
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT2(0.0f, 0.0f) },
417-
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) },
418-
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) },
419-
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
420-
421-
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT2(0.0f, 0.0f) },
422-
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) },
423-
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) },
424-
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
425-
426-
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) },
427-
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) },
428-
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT2(1.0f, 1.0f) },
429-
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
430-
431-
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) },
432-
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) },
433-
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT2(1.0f, 1.0f) },
434-
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
435-
436-
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT2(0.0f, 0.0f) },
437-
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) },
438-
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT2(1.0f, 1.0f) },
439-
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT2(0.0f, 1.0f) },
440-
441-
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) },
442-
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT2(1.0f, 0.0f) },
443-
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) },
444-
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
425+
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
426+
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
427+
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
428+
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
429+
430+
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
431+
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
432+
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
433+
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
434+
435+
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
436+
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
437+
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
438+
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
439+
440+
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
441+
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
442+
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
443+
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
444+
445+
{ XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
446+
{ XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
447+
{ XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
448+
{ XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
449+
450+
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) },
451+
{ XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) },
452+
{ XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) },
453+
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) },
445454
};
446455
hr = CreateVertexBufferInline(g_D3D11Device, &g_D3D11VertexBuffer, g_VertexSize, g_VertexCount, vertices);
447456
FAILED_MESSAGE_RETURN(hr, L"fail to create vertex buffer..");

0 commit comments

Comments
 (0)