| 2109 | } |
| 2110 | |
| 2111 | HRESULT 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 | |
| 2145 | HRESULT CDX9VideoProcessor::AddPostScaleShader(const std::wstring& name, const std::string& srcCode) |
| 2146 | { |
no test coverage detected