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

Method AddPreScaleShader

Source/DX9VideoProcessor.cpp:2111–2143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2109}
2110
2111HRESULT CDX9VideoProcessor::AddPreScaleShader(const std::wstring& name, const std::string& srcCode)
2112{
2113#ifdef _DEBUG
2114 if (!m_pD3DDevEx) {
2115 return E_ABORT;
2116 }
2117
2118 ID3DBlob* pShaderCode = nullptr;
2119 HRESULT hr = CompileShader(srcCode, nullptr, "ps_3_0", &pShaderCode);
2120 if (S_OK == hr) {
2121 m_pPreScaleShaders.emplace_back();
2122 hr = m_pD3DDevEx->CreatePixelShader((const DWORD*)pShaderCode->GetBufferPointer(), &m_pPreScaleShaders.back().shader);
2123 if (S_OK == hr) {
2124 m_pPreScaleShaders.back().name = name;
2125 // UpdatePreScaleTexures();
2126 DLog(L"CDX9VideoProcessor::AddPreScaleShader() : \"{}\" pixel shader added successfully.", name);
2127 }
2128 else {
2129 DLog(L"CDX9VideoProcessor::AddPreScaleShader() : create pixel shader \"{}\" FAILED!", name);
2130 m_pPreScaleShaders.pop_back();
2131 }
2132 pShaderCode->Release();
2133 }
2134
2135 if (S_OK == hr && m_DXVA2VP.IsReady() && m_bVPScaling) {
2136 return S_FALSE;
2137 }
2138
2139 return hr;
2140#else
2141 return E_NOTIMPL;
2142#endif
2143}
2144
2145HRESULT CDX9VideoProcessor::AddPostScaleShader(const std::wstring& name, const std::string& srcCode)
2146{

Callers 1

Flt_SetBinMethod · 0.45

Calls 4

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

Tested by

no test coverage detected