![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Gremlin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 28.8.2006 Репутация: нет Всего: нет |
В книжке написано что есть такая функция
HRESULT D3DXCreateFont( LPDIRECT3DDEVICE9 pDevice, HFONT * hFont, LPD3DXFONT * ppFont ); но у меня она выглядит так HRESULT D3DXCreateFont( LPDIRECT3DDEVICE9 pDevice, INT Height, UINT Width, UINT Weight, UINT MipLevels, BOOL Italic, DWORD CharSet, DWORD OutputPrecision, DWORD Quality, DWORD PitchAndFamily, LPCTSTR pFacename, LPD3DXFONT * ppFont ); и у LPD3DXFONT нету Begin(), End(). Неужели в разных версиях DirectX9 SDK разные функции???? я сделал D3DXCreateFont(pDirect3DDevice, 30, 10, FW_NORMAL, 0, false, 1, 0, 0, DEFAULT_PITCH|FF_MODERN, "Arial", &pFont); pFont->DrawText(NULL, StrokaTexta, -1, &Rec, DT_WORDBREAK, MyColor); текст появляется но через какоето время исчезает и машина начинает тормозить >_< зы в книге описана работа с DirectX9b, а у меня SDK апрельская! |
|||
|
||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
![]() Последним предложением вы сами ответили на свой вопрос....
... эта дополнительная библиотека написана левой пяткой. Ребята из M$ и не собираются делать совместимость этой библы с разными версиями D3D. P.S. Я лично против этой дополнительной библиотеки - можно и нужно обойтись и без нее! -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
Gremlin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 28.8.2006 Репутация: нет Всего: нет |
не понял про какую дополнительную библиотеку речь )
|
|||
|
||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
А вы не знали, что юзаете не D3D, а её дополнительную библиотеку со вспомогательными функциями, которые начинаются с D3DX**** ?! ![]() -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
sanches80 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.9.2009 Репутация: 1 Всего: 1 |
Может уже не актуально, но все равно скажу.
Почему нет Begin, End вам уже объяснили. Дастаточно, чтобы текст отрисовывался между операциями BeginScene - EndScene. Память утекает потому, что вы каждый раз при прорисовке очередного кадра, создаете новый объект pFont, предыдущий соответственно не удаляется. Тормозит, вероятно потому что зациклинное создание строки, есть суть нетривиальная операция, требующая ресурсов. Ваш код, очень похож на код из книги Горнакова С, я сам по ней делал примеры и нарвался на такую же проблему. У меня когда кончилась память, а я не успел выключить приложение, машина накрылась медным тазом с блю скрином. Но выжила вроде, без последствий. Вообщем я создал шрифт в отдельном методе, в момент инициализации основных интерфейсов DirectX, это происходит один раз как вы понимаете, за всю жизнь приложения. А непосредственно сам вывод текста, оставил между BeginScene - EndScene. Память перестала утекать и тормозить перестало. Удачи. PS. Прикрепил исходник. Присоединённый файл ( Кол-во скачиваний: 48 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |