MCPcopy Create free account
hub / github.com/Aleksoid1978/VideoRenderer / AddPreScaleShader

Method AddPreScaleShader

Source/DX11VideoProcessor.cpp:4108–4140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4106}
4107
4108HRESULT CDX11VideoProcessor::AddPreScaleShader(const std::wstring& name, const std::string& srcCode)
4109{
4110#ifdef _DEBUG
4111 if (!m_pDevice) {
4112 return E_ABORT;
4113 }
4114
4115 ID3DBlob* pShaderCode = nullptr;
4116 HRESULT hr = CompileShader(srcCode, nullptr, "ps_4_0", &pShaderCode);
4117 if (S_OK == hr) {
4118 m_pPreScaleShaders.emplace_back();
4119 hr = m_pDevice->CreatePixelShader(pShaderCode->GetBufferPointer(), pShaderCode->GetBufferSize(), nullptr, &m_pPreScaleShaders.back().shader);
4120 if (S_OK == hr) {
4121 m_pPreScaleShaders.back().name = name;
4122 //UpdatePreScaleTexures(); //TODO
4123 DLog(L"CDX11VideoProcessor::AddPreScaleShader() : \"{}\" pixel shader added successfully.", name);
4124 }
4125 else {
4126 DLog(L"CDX11VideoProcessor::AddPreScaleShader() : create pixel shader \"{}\" FAILED!", name);
4127 m_pPreScaleShaders.pop_back();
4128 }
4129 pShaderCode->Release();
4130 }
4131
4132 if (S_OK == hr && m_D3D11VP.IsReady() && m_bVPScaling) {
4133 return S_FALSE;
4134 }
4135
4136 return hr;
4137#else
4138 return E_NOTIMPL;
4139#endif
4140}
4141
4142HRESULT CDX11VideoProcessor::AddPostScaleShader(const std::wstring& name, const std::string& srcCode)
4143{

Callers

nothing calls this directly

Calls 4

CompileShaderFunction · 0.85
DLogFunction · 0.85
ReleaseMethod · 0.45
IsReadyMethod · 0.45

Tested by

no test coverage detected