Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вывод текста DirectX9


Автор: Gram 15.12.2005, 12:16
Почему текст не выводится вот код :
Код

//Инициализация 
HRESULT Font::Init(LPDIRECT3DDEVICE9 Device)
{
    d3d_Device = Device;                            // Запоминаем используемое устройство
    HRESULT hr;
/*
    HFONT hFont  = CreateFont( 12, 5, 0, 0, FW_LIGHT, FALSE, 
      FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, 
      CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, 
      VARIABLE_PITCH,"Arial"); 
//Все бы хорошо но этого метода уже нет 
    return D3DXCreateFont(Device,hFont, &pFont); 
*/
    
    return D3DXCreateFont(Device,
                    10,
                    0,
                    0,
                    0,
                    false,
                    ANSI_CHARSET,
                    CLIP_DEFAULT_PRECIS,
                    DEFAULT_QUALITY,                                // nQuality
                    DEFAULT_PITCH ,                        // nPitchAndFamily
                    "Times New Roman",
                    &pFont);            // Создаем шрифт
                    
    /* D3DXFONT_DESC lf;
        CHAR *ch = "Arial";
     lf.Height         = 0;
     lf.Width          = 0 ;
     lf.MipLevels = 0;
    // lf.FaceName = (CHAR)'A';
     lf.Weight         = FW_NORMAL ;
     lf.Italic         = false ;
     //lf.lfUnderline      = false;
     //lf.lfStrikeOut      = false;
     lf.CharSet        = 0 ;
//     lf.OutPrecision   = 0 ;
     lf.OutputPrecision = 0;
     //lf.lfClipPrecision  = CLIP_DEFAULT_PRECIS ;
     lf.Quality        = DEFAULT_QUALITY ;
     lf.PitchAndFamily = DEFAULT_PITCH ;
    
     return D3DXCreateFontIndirect(Device,&lf,&pFont);
     */
}
//Вывод
HRESULT Font::Print(char* text, int x, int y, D3DCOLOR Color)
{
    Rect.left    = x;                                // Заносим координаты текста
    Rect.top    = y;                                //  в структуру Rect, как
    Rect.bottom    = 0;                                //  левый верхний угол
    Rect.right    = 0;

int r = pFont->DrawTextW(NULL,(LPCWSTR)text, -1, &Rect, DT_VCENTER | DT_CALCRECT , Color);    // Рисуем текст в определенном месте, с заданным цветом
    if ( r != 0) return D3D_OK;
    else return D3DERR_INVALIDCALL;
                                 
}

Вызываю между BeginScene и EndScene
немогу врубится в чем проблема smile
помогите??? smile


Автор: Gram 15.12.2005, 15:35
smile
тема закрыта я нашел решение
http://www.gamedev.ru/forum/?group=0&topic=16294

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)