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

Тема в разделе "MS Visual C++", создана пользователем GRLEX, 11 апр 2007.

  1. GRLEX

    GRLEX Гость

    Привет народ. Такая проблемка:
    есть функция, которая рисует график, и соответственно подписывает значения на осях, так вот.
    Вроде все написано верно, все компилит, рисует, дебажицца нармально, но текст, хоть убей, не выводит.
    Данные координат - корректные, данные на вывод тоже корректные. Не знаю что и думать Хто чем может плиз.
    Вот вырезка кода
    //***********************
    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 );



    }

    //***********************
     
  2. GRLEX

    GRLEX Гость

    Сам нарыл. Был тупо глюк VS. Всем пасиба
     
Загрузка...

Поделиться этой страницей