Gfx: Add __D2DParams option to allow testing D2D text rendering options

This commit is contained in:
Birunthan Mohanathas
2013-09-29 11:28:28 +03:00
parent c1aa191235
commit d003db6531
3 changed files with 32 additions and 0 deletions

View File

@ -167,6 +167,10 @@ bool CanvasD2D::BeginTargetDraw()
if (SUCCEEDED(hr))
{
SetTextAntiAliasing(m_TextAntiAliasing);
if (m_TextRenderingParams)
{
m_Target->SetTextRenderingParams(m_TextRenderingParams.Get());
}
m_Target->BeginDraw();
@ -295,6 +299,27 @@ void CanvasD2D::SetTextAntiAliasing(bool enable)
}
}
void CanvasD2D::SetTextRenderingOptions(float gamma, float enhancedContrast)
{
Microsoft::WRL::ComPtr<IDWriteRenderingParams> defaultRenderingParams;
HRESULT hr = c_DWFactory->CreateRenderingParams(defaultRenderingParams.GetAddressOf());
if (SUCCEEDED(hr))
{
hr = c_DWFactory->CreateCustomRenderingParams(
gamma,
enhancedContrast,
defaultRenderingParams->GetClearTypeLevel(),
defaultRenderingParams->GetPixelGeometry(),
defaultRenderingParams->GetRenderingMode(),
m_TextRenderingParams.ReleaseAndGetAddressOf());
}
if (SUCCEEDED(hr) && m_Target)
{
m_Target->SetTextRenderingParams(m_TextRenderingParams.Get());
}
}
void CanvasD2D::Clear(const Gdiplus::Color& color)
{
if (!m_Target) // Use GDI+ if D2D render target has not been created.