Создаю шрифты.
Часть шрифтов не работает.
Не рисуется вообще.
Поменя какие нибудь параметры шрифта(размер, свойства), нарисуется, но какой нибудь/какие нибудь другие шрифты рисоваться перестают.
НЕ понимаю в чем проблема.
Обычно использую свою систему шрифтов, текстурные.
А тут понадобилось сделать системные и вот такой косяк...
Код отвечающий за шрифты
struct sFont
;
class cFont
;
sFont* GetDirectData()
};
static int s_DisplayListPosition = 0;
static std::vector<gapi::sFont*> s_Fonts;
gapi::cFont::cFont(std::string Name, int Size, bool Bold, bool Italic, bool Underline)
;
loger::Add("Init font");
loger::AddString(Name+IntToStr(Size));
m_Font = new gapi::sFont();
m_Font->Name = Name;
m_Font->Size = Size;
m_Font->Bold = Bold;
m_Font->Italic = Italic;
m_Font->Underline = Underline;
#ifdef WIN32
LOGFONTA LogFont;
LogFont.lfHeight = -MulDiv(Size, GetDeviceCaps(osal::OSWindows_GetDC(), LOGPIXELSY), 72);
m_Font->YShift = -LogFont.lfHeight;
LogFont.lfWidth = 0;
LogFont.lfEscapement = 0;
LogFont.lfOrientation = 0;
if (Bold)
LogFont.lfWeight = FW_BOLD;
else
LogFont.lfWeight = FW_NORMAL;
LogFont.lfItalic = Italic;
LogFont.lfUnderline = Underline;
LogFont.lfStrikeOut = 0;
LogFont.lfCharSet = DEFAULT_CHARSET;
strcpy(LogFont.lfFaceName,Name.c_str());
LogFont.lfQuality = DEFAULT_QUALITY;
LogFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
LogFont.lfPitchAndFamily = FIXED_PITCH;
LogFont.lfPitchAndFamily = DEFAULT_PITCH;
m_Font->OSFont = (int)CreateFontIndirectA(&LogFont);
SelectObject(osal::OSWindows_GetDC(),(HFONT)m_Font->OSFont);
m_Font->Font = s_DisplayListPosition;
wglUseFontBitmaps (osal::OSWindows_GetDC(), 0, 256, m_Font->Font);
#endif
s_DisplayListPosition +=256;
s_Fonts.push_back(m_Font);
};
gapi::cFont::~cFont()
;
void gapi::cFont::Draw(float x, float y, cVector4f& Color, const char* Text)
;