1414#include " UILayer.h"
1515#include < dxgidebug.h>
1616
17- // Precompiled shaders.
18- #include " gradientVS.hlsl.h"
19- #include " gradientPS.hlsl.h"
20- #include " paletteVS.hlsl.h"
21- #include " palettePS.hlsl.h"
22- #include " presentVS.hlsl.h"
23- #include " presentPS.hlsl.h"
24-
2517const float D3D12HDR ::ClearColor[4 ] = { 0 .0f , 0 .0f , 0 .0f , 1 .0f };
2618
2719extern " C" { __declspec(dllexport) extern const UINT D3D12SDKVersion = 618 ; }
@@ -216,6 +208,13 @@ void D3D12HDR::LoadAssets()
216208 // as well as the intermediate blend step.
217209 {
218210 // Create the pipeline state for the scene geometry.
211+ UINT8 * pGradientVertexShaderData = nullptr ;
212+ UINT8 * pGradientPixelShaderData = nullptr ;
213+ UINT gradientVertexShaderDataLength = 0 ;
214+ UINT gradientPixelShaderDataLength = 0 ;
215+
216+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" gradientVS.cso" ).c_str (), &pGradientVertexShaderData, &gradientVertexShaderDataLength));
217+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" gradientPS.cso" ).c_str (), &pGradientPixelShaderData, &gradientPixelShaderDataLength));
219218
220219 D3D12_INPUT_ELEMENT_DESC gradientElementDescs[] =
221220 {
@@ -227,8 +226,8 @@ void D3D12HDR::LoadAssets()
227226 D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {};
228227 psoDesc.InputLayout = { gradientElementDescs, _countof (gradientElementDescs) };
229228 psoDesc.pRootSignature = m_rootSignature.Get ();
230- psoDesc.VS = CD3DX12_SHADER_BYTECODE (g_gradientVS, sizeof (g_gradientVS) );
231- psoDesc.PS = CD3DX12_SHADER_BYTECODE (g_gradientPS, sizeof (g_gradientPS) );
229+ psoDesc.VS = CD3DX12_SHADER_BYTECODE (pGradientVertexShaderData, gradientVertexShaderDataLength );
230+ psoDesc.PS = CD3DX12_SHADER_BYTECODE (pGradientPixelShaderData, gradientPixelShaderDataLength );
232231 psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC (D3D12_DEFAULT );
233232 psoDesc.BlendState = CD3DX12_BLEND_DESC (D3D12_DEFAULT );
234233 psoDesc.DepthStencilState .DepthEnable = FALSE ;
@@ -242,6 +241,13 @@ void D3D12HDR::LoadAssets()
242241 ThrowIfFailed (m_device->CreateGraphicsPipelineState (&psoDesc, IID_PPV_ARGS (&m_pipelineStates[GradientPSO])));
243242
244243 // Create pipeline state for the color space triangles.
244+ UINT8 * pPaletteVertexShaderData = nullptr ;
245+ UINT8 * pPalettePixelShaderData = nullptr ;
246+ UINT paletteVertexShaderDataLength = 0 ;
247+ UINT palettePixelShaderDataLength = 0 ;
248+
249+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" paletteVS.cso" ).c_str (), &pPaletteVertexShaderData, &paletteVertexShaderDataLength));
250+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" palettePS.cso" ).c_str (), &pPalettePixelShaderData, &palettePixelShaderDataLength));
245251
246252 D3D12_INPUT_ELEMENT_DESC colorElementDescs[] =
247253 {
@@ -250,14 +256,21 @@ void D3D12HDR::LoadAssets()
250256 };
251257
252258 psoDesc.InputLayout = { colorElementDescs, _countof (colorElementDescs) };
253- psoDesc.VS = CD3DX12_SHADER_BYTECODE (g_paletteVS, sizeof (g_paletteVS) );
254- psoDesc.PS = CD3DX12_SHADER_BYTECODE (g_palettePS, sizeof (g_palettePS) );
259+ psoDesc.VS = CD3DX12_SHADER_BYTECODE (pPaletteVertexShaderData, paletteVertexShaderDataLength );
260+ psoDesc.PS = CD3DX12_SHADER_BYTECODE (pPalettePixelShaderData, palettePixelShaderDataLength );
255261 psoDesc.RTVFormats [0 ] = m_intermediateRenderTargetFormat;
256262
257263 ThrowIfFailed (m_device->CreateGraphicsPipelineState (&psoDesc, IID_PPV_ARGS (&m_pipelineStates[PalettePSO])));
258264
259265 // Create pipeline states for the final blend step.
260266 // There will be one for each swap chain format the sample supports.
267+ UINT8 * pPresentVertexShaderData = nullptr ;
268+ UINT8 * pPresentPixelShaderData = nullptr ;
269+ UINT presentVertexShaderDataLength = 0 ;
270+ UINT presentPixelShaderDataLength = 0 ;
271+
272+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" presentVS.cso" ).c_str (), &pPresentVertexShaderData, &presentVertexShaderDataLength));
273+ ThrowIfFailed (ReadDataFromFile (GetAssetFullPath (L" presentPS.cso" ).c_str (), &pPresentPixelShaderData, &presentPixelShaderDataLength));
261274
262275 D3D12_INPUT_ELEMENT_DESC quadElementDescs[] =
263276 {
@@ -266,8 +279,8 @@ void D3D12HDR::LoadAssets()
266279 };
267280
268281 psoDesc.InputLayout = { quadElementDescs, _countof (quadElementDescs) };
269- psoDesc.VS = CD3DX12_SHADER_BYTECODE (g_presentVS, sizeof (g_presentVS) );
270- psoDesc.PS = CD3DX12_SHADER_BYTECODE (g_presentPS, sizeof (g_presentPS) );
282+ psoDesc.VS = CD3DX12_SHADER_BYTECODE (pPresentVertexShaderData, presentVertexShaderDataLength );
283+ psoDesc.PS = CD3DX12_SHADER_BYTECODE (pPresentPixelShaderData, presentPixelShaderDataLength );
271284 psoDesc.RTVFormats [0 ] = m_swapChainFormats[_8];
272285 ThrowIfFailed (m_device->CreateGraphicsPipelineState (&psoDesc, IID_PPV_ARGS (&m_pipelineStates[Present8bitPSO])));
273286
0 commit comments