Вывод текста через Directx

  • Автор темы GRLEX
  • Дата начала
G

GRLEX

#1
Привет народ. Такая проблемка:
есть функция, которая рисует график, и соответственно подписывает значения на осях, так вот.
Вроде все написано верно, все компилит, рисует, дебажицца нармально, но текст, хоть убей, не выводит.
Данные координат - корректные, данные на вывод тоже корректные. Не знаю что и думать Хто чем может плиз.
Вот вырезка кода
//***********************
VOID CDXGraphView::Render() {
RECT ARect;
if(g_pd3dDevice == NULL) { return; };
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, GScrColor.Bg/* M D3DCOLOR_XRGB(0, 0, 0)*/, 1.0f, 0 ); // Очистка и закраска фона
// Начало отрисовки сцены.
if(SUCCEEDED(g_pd3dDevice->BeginScene())) {
// Отрисовка
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX));
g_pd3dDevice->SetFVF(D3DFVF_XYZRHW|D3DFVF_DIFFUSE);
// data
g_pd3dDevice->DrawPrimitive (D3DPT_LINESTRIP , FromVertex[3], PrimitiveCount[3]); // Data Ch0
g_pd3dDevice->DrawPrimitive (D3DPT_LINESTRIP , FromVertex[4], PrimitiveCount[4]); // Data Ch1
// DrawMouse
D3DXVECTOR2 TempMv;
TempMv.x = (float)MsXStart;
TempMv.y = (float)MsYStart;
amv[0] = TempMv;
TempMv.x = (float)MsX;
TempMv.y = (float)MsYStart;
amv[1] = TempMv;
TempMv.x = (float)MsX;
TempMv.y = (float)MsY;
amv[2] = TempMv;
TempMv.x = (float)MsXStart;
TempMv.y = (float)MsY;
amv[3] = TempMv;
amv[4] = amv[0];
if (Select) {
g_pLine->SetGLLines (TRUE);
g_pLine->SetPattern (MOUSE_LINE_PATTERN);
g_pLine->SetPatternScale(1.0f);
g_pLine->SetWidth (1);// Отрисовка линий установленной толщины
g_pLine->SetAntialias(FALSE);
g_pLine->Draw(amv,5,GScrColor.MouseSelColor );
}
// End Draw Mouse
g_pd3dDevice->SetFVF(D3DFVF_XYZRHW|D3DFVF_DIFFUSE);
g_pd3dDevice->DrawPrimitive (D3DPT_TRIANGLELIST, FromVertex[0], PrimitiveCount[0] );
// вкл. прозрачность
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_SRCCOLOR);
g_pd3dDevice->DrawPrimitive (D3DPT_LINESTRIP , FromVertex[1], PrimitiveCount[1] ); // border
g_pd3dDevice->DrawPrimitive (D3DPT_LINELIST , FromVertex[2], PrimitiveCount[2] ); // Axis
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
// Draw Text
for (int i=0; i<StrFontCount; i++) {
ARect = StrFont.rect;

g_pFont->DrawText(NULL,StrFont.str, StrFont.len, &ARect, DT_CENTER |DT_NOCLIP,StrFont.color);
}

// Конец отрисовки сцены.
g_pd3dDevice->EndScene();
}
// Вывод из следующего буфера на экран.
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );



}

//***********************