У меня есть приложение MFC, которое отображает аннотированные карты, которые могут содержать большое количество текста. Хотя размер и шрифт текста не сильно меняются, вращение текста значительно варьируется, чтобы выровняться с окружающей линией работы. Это в основном означает, что мне нужно создавать и выбирать новый шрифт в контексте дисплея каждый раз, когда меняется поворот. Что-то вроде;
if (TextRotationChanges)
{
m_pFont = new CFont;
m_lf.lfEscapement = NewRotation;
m_pFont->CreateFontIndirect(&m_lf);
}
CFont *OldFont = m_pDC->SelectObject(m_pFont);
m_pDC->TextOut(x,y,text,strlen(text));
m_pDC->SelectObject(OldFont);
Это очевидно медленно при работе с большими объемами текста. Есть ли способ ускорить это, не переходя на другой движок дисплея, такой как D3D или OpenGL? Другими словами, можно ли изменить вращение текста существующим выбранным шрифтом?
n.b. Я уже выполняю другие очевидные оптимизации, такие как обеспечение отображения текста на экране в видимом размере перед попыткой его нарисовать.