我使用c#Graphics.DrawString方法在图像上绘制文本叠加层。即使操作系统没有土耳其语软件包,它也可以绘制土耳其语字符。但是由于性能问题,我现在使用DirectX-9进行绘制。如果操作系统具有土耳其语语言包,则DirectX会绘制土耳其语字符,但如果没有,则不会绘制。
即使操作系统没有土耳其语软件包,是否可以通过DirectX绘制土耳其语字符?
字符串通过包装器从c#到c ++。
drawStringWrapper(System::String^ text)
{
char* textPtr = (char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(text).ToPointer();
drawStringD3DX(textptr);
}
这是我创建字体的方式,
D3DXCreateFont(dev,fontSize,0,FW_NORMAL,1,false,TURKISH_CHARSET,OUT_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_MODERN, L"Arial", &d3dxFont);
我尝试了ANSI_CHARSET
和DEFAULT_CHARSET
。我也尝试了不同的字体,例如:L"Generic Sans Serif"