Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Вывод текста в Direct3D, Вместо букв - прямоугольники 
:(
    Опции темы
maxnsk82
Дата 28.6.2009, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Кроме вращающегося куба должна выводить текст, но вместо текста рисует прямоугольники.

Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  Text.cpp 8,41 Kb
PM MAIL   Вверх
maxnsk82
Дата 29.6.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Я так думаю что ошибка где-то здесь:

Код

void PrintText(LPDIRECT3DDEVICE9 pDevice, char* string, int x, int y, int x1, int y1, D3DCOLOR color) {
    rect.left = x;
    rect.top = y;
    rect.right = x1;
    rect.bottom = y1;

    
    D3DXCreateSprite(pDevice, &_pSprite);
    _pSprite->Begin(0);
    D3DXCreateFontA(pDirect3DDevice,30,10,FW_NORMAL,0,FALSE,1,0,0,FIXED_PITCH|FF_MODERN,"Modern",&pFont);
    pFont->DrawTextA(_pSprite,string,-1,&rect,DT_WORDBREAK,color);
    _pSprite->End();
}


Это сообщение отредактировал(а) Alexeis - 1.7.2009, 09:25
PM MAIL   Вверх
BorisVorontsov
Дата 29.6.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Шрифт Modern вообще только DOS кодировку поддерживает.


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
maxnsk82
Дата 29.6.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



поменял на ...FIXED_PITCH|FF_ROMAN,"Times New Roman"....тоже самое
PM MAIL   Вверх
BorisVorontsov
Дата 29.6.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



А если RUSSIAN_CHARSET задать вместо DEFAULT?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
maxnsk82
Дата 29.6.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Имеешь ввиду в функции InitialDirect3D...-не принимает, а больше вроде нигде не втречается DEFAULT, или я не вижу...
PM MAIL   Вверх
BorisVorontsov
Дата 29.6.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Э... ты в справку вообще глядел, когда писал код? Погляди, какие значения предопределены для параметра CharSet


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Andrey44
Дата 30.6.2009, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Код

D3DXCreateFont( _pd3dDevice,            // D3D device
        32,               // Height
        0,                     // Width
        FW_BOLD,               // Weight
        1,                     // MipLevels, 0 = autogen mipmaps
        FALSE,                 // Italic
        DEFAULT_CHARSET,       // CharSet
        OUT_DEFAULT_PRECIS,    // OutputPrecision
        DEFAULT_QUALITY,       // Quality
        DEFAULT_PITCH | FF_DONTCARE, // PitchAndFamily
        _T("Comic sans MS"),              // pFaceName
        &_pFont );              // ppFont

_pFont->DrawText( NULL, L"This is a trivial call to ID3DXFont::DrawText", -1, &MYRECT(0, 0, 100, 100), DT_NOCLIP,
        D3DXCOLOR( 1.0f, 0.0f, 0.0f, 1.0f ) );

У меня работает

Это сообщение отредактировал(а) Andrey44 - 30.6.2009, 07:23


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
BorisVorontsov
Дата 30.6.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Andrey44, а ты русский текст выведи с DEFAULT_CHARSET на английской Windows, вот удивишься smile Подозреваю, у автора та же проблема


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
maxnsk82
Дата 1.7.2009, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Ввёл код предложенный "Andrey44". Работает аналогично. И самое не прикольное что английские буквы так же нормально не выводятся. В чём может быть проблема? Я не только на форуме ищу ответа, если где найду - обязательно напишу что не так.
 
PM MAIL   Вверх
BorisVorontsov
Дата 1.7.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



С каким шрифтом пробовал?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
maxnsk82
Дата 1.7.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



..FIXED_PITCH|FF_ROMAN,"Times New Roman"...и..FIXED_PITCH|FF_MODERN,"Modern"(ещё менял на "Arial")...пробовал, что так что эдак - прямоугольники вроде только разные(...
PM MAIL   Вверх
Andrey44
Дата 1.7.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



Давно пора работать с юникодными версиями функций.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
maxnsk82
Дата 1.7.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Я же только учусь - какую книжку порекоммендовали - по той и осваиваю, хотя спрашивал совета у того кто мне про эту книгу сказал, а он как-то по другому делает. Книжка: "Уроки программирования на с++", Горнаков, если кто знает более актуальную книженцию подскажите плиз..
PM MAIL   Вверх
Andrey44
Дата 2.7.2009, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: нет
Всего: 26



maxnsk82, так что вы учите? С++ или DX?
Если DX то советую поискать книги Фрэнка Луна.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Закрытая темаСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.2709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.