   ID3DXFont Exception...
  This is odd, whenever my ID3DXFont object draws, it causes a "First-chance exception in Engine.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception."Usually when I get an exception C++ would give me a message box and then put me in the code where that occurred. This code just plods along not doing anything. On top of that, I don''t see anything wrong with the code. Most of it worked fine before I upgraded to the summer update and I used Drunken Hyena''s ID3DXFont tutorial to update it.Here''s Code:   //Note: string is my own null-terminated string class with an operator char*, among many other operators for my useTextManager::TextManager(Application* ParentApp) : BaseManager(ParentApp){m_Fonts[0] =m_Fonts[1] =m_Fonts[2] = NULL;m_Strings[0] = m_Strings[1] = m_Strings[2] = NULL;m_NumString[0] = m_NumString[1] = m_NumString[2] = 0;IDirect3DDevice9* device = m_ParentApp->GetGraphicsDevice();if(!device){debug.Print(DEBUG_PRIORITY_EXTREME, "Tried to load text manager without a device!");return;}HRESULT hr;for(int i=1; i<=3; i++){device = m_ParentApp->GetGraphicsDevice(i);if(!device){break;}if(FAILED(hr=D3DXCreateFont(device, TEXT_HEIGHT, (long)((3/8) * TEXT_HEIGHT), FW_NORMAL, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE, TEXT_FONTNAME, &m_Fonts[i-1]))){string sError;if(hr == D3DERR_INVALIDCALL){sError = string("Could not find font \"") + string(*TEXT_FONTNAME) + string("\" on system");}else if (hr == E_OUTOFMEMORY){sError = "Could not load font: out of memory";}MajorError(sError);return;}}debug.Print(DEBUG_PRIORITY_NORMAL, string("Text manager (") + string(this) + string(") has been successfully created."));}void TextManager::AddText(string sText, char Monitor){Monitor--;if(!sText) return;if(!m_Fonts[Monitor]) return;m_NumString[Monitor]++;string* TempArray;TempArray = new string[m_NumString[Monitor]];if(m_NumString[Monitor] > 1){for(int i=0; i<m_NumString[Monitor]-1;i++){TempArray[i] = m_Strings[Monitor][i];}delete[]m_Strings[Monitor];}m_Strings[Monitor] = TempArray;m_Strings[Monitor][m_NumString[Monitor]-1] = new string;m_Strings[Monitor][m_NumString[Monitor]-1] = sText;}void TextManager::Draw(){if(!m_NumString || !m_Fonts) return;RECT DrawRect;DrawRect.left = 0;DrawRect.right = m_ParentApp->GetGraphics()->GetWidth();int TMPHeight = m_ParentApp->GetGraphics()->GetHeight();for(int i=0; i<3; i++){if(!m_Fonts[i]){break;}int Repititions = m_NumString[i];if(Repititions * TEXT_HEIGHT > TMPHeight){Repititions = (int)(TMPHeight / TEXT_HEIGHT)-1;}for(int b=0; b<Repititions; b++){DrawRect.top = b * TEXT_HEIGHT;DrawRect.bottom = b * TEXT_HEIGHT + TEXT_HEIGHT;//Error is on next line:m_Fonts[i]->DrawText(NULL, m_Strings[i][b], -1, &DrawRect, DT_LEFT, D3DCOLOR_RGBA(255,255,255,255));}delete[]m_Strings[i];m_Strings[i] = NULL;m_NumString[i] = 0;}}
  Hello!Sorry, but my use with the DX9 font workings is all in managed code (C#), but I can tell you that the interface and functioning of the .Net Font class changed dramatically in the Summer update. I just hate it when an update (read: patch) breaks my code! Anyway, you might want to check with MS or the newer docs because you''re knowledge of this material may be out-dated. (Thanx MS!) I''d love to hack something together and figure this out for you, but I''ve ordered an MSDN subscription and it hasn''t arrived yet so I''m sort of in ''no-code-for-me'' mode for another week or so.Scott. ;  D''oh, I figured it out.Apparently my Text Manager''s draw request was outside of the Start/End frame block. Well, now I know what happens when I do that. Sorry about that. ;  I love it! 