void D3D12PipelineStateCache::OnKeyUp(WPARAM key)
{
	switch (key)
	{
	case 'C':
		WaitForGpu();
		m_psoLibrary.ClearPSOCache();
		break;

	case 'U':
		m_psoLibrary.ToggleUberShader();
		break;

	case 'L':
		m_psoLibrary.ToggleDiskLibrary();
		break;

	case '1':
		ToggleEffect(PostBlit);
		break;

	case '2':
		ToggleEffect(PostInvert);
		break;

	case '3':
		ToggleEffect(PostGrayScale);
		break;

	case '4':
		ToggleEffect(PostEdgeDetect);
		break;

	case '5':
		ToggleEffect(PostBlur);
		break;

	case '6':
		ToggleEffect(PostWarp);
		break;

	case '7':
		ToggleEffect(PostPixelate);
		break;

	case '8':
		ToggleEffect(PostDistort);
		break;

	case '9':
		ToggleEffect(PostWave);
		break;

	default:
		break;
	}

	UpdateWindowTextPso();
}
void D3D12PipelineStateCache::OnKeyUp(UINT8 key)
{
	m_camera.OnKeyUp(key);
	
	switch (key)
	{
	case 'C':
		WaitForGpu();
		m_psoLibrary.ClearPSOCache();
		m_psoLibrary.Build(m_device.Get(), m_rootSignature.Get());
		break;

	case 'U':
		m_psoLibrary.ToggleUberShader();
		break;

	case 'L':
		m_psoLibrary.ToggleDiskLibrary();
		break;

	case 'M':
		m_psoLibrary.SwitchPSOCachingMechanism();
		break;

	case '1':
		ToggleEffect(PostBlit);
		break;

	case '2':
		ToggleEffect(PostInvert);
		break;

	case '3':
		ToggleEffect(PostGrayScale);
		break;

	case '4':
		ToggleEffect(PostEdgeDetect);
		break;

	case '5':
		ToggleEffect(PostBlur);
		break;

	case '6':
		ToggleEffect(PostWarp);
		break;

	case '7':
		ToggleEffect(PostPixelate);
		break;

	case '8':
		ToggleEffect(PostDistort);
		break;

	case '9':
		ToggleEffect(PostWave);
		break;

	default:
		break;
	}

	UpdateWindowTextPso();
}