![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
D3DX
Ev_genus © (2002-12-05 23:04:00)Если кто работал с сабж. дайте работающий примерчик. Просто шоб ФПС выводил например.
Заранее спасибо.
Ev_genus (2002-12-10 01:51:00) [1]Спасибо.
>Хотя вообще-то ID3DXFont лучше не использовать
>(тормозит - попробуй вывести много текста).
Да мне только для консоли.
Sapersky_ (2002-12-09 19:46:00) [2]Var DFont : ID3DXFont;
Создание:
procedure CreateFont;
Var LogFont : TLogFontA;
begin
with LogFont do begin
lfHeight:= 16; lfWidth:= 5;
lfEscapement:= 0; lfOrientation:= 0; lfWeight:= 400;
lfItalic:= 0; lfUnderline:= 0; lfStrikeOut:= 0;
lfCharSet:= OEM_CHARSET;
lfOutPrecision:= OUT_DEFAULT_PRECIS;
lfClipPrecision:= CLIP_DEFAULT_PRECIS;
lfQuality:= DEFAULT_QUALITY;
lfPitchAndFamily:= DEFAULT_PITCH or FF_DECORATIVE;
FillChar(lfFaceName,32,0);
end;
D3D8Check(D3DXCreateFontIndirect(D3DDev8, LogFont, DFont));
end; // D3DDev8 - инициализированный девайс
Использование:
Var st : String;
r : TRect;
st:="Hello world!";
r:=Rect(10,10,200,40);
DFont._Begin; // если текст выводится несколько подряд
DFont.DrawTextA(PChar(st), -1, r, DT_NOCLIP, $FFFFFFFF);
// r - прямоугольник, в который вписывается текст
// DT_NOCLIP - не делать отсечения по прямоугольнику
// (там ещё куча всяких флагов, выравнивание, форматирование,
// разбивка на строки и т.п.)
// последний параметр - цвет
DFont._End;
Уничтожение:
DFont:=nil;
Хотя вообще-то ID3DXFont лучше не использовать (тормозит - попробуй вывести много текста). Есть микрософтовский класс CFont - из переведённого на Delphi framework к DX8. Он вроде лучше работает.
Framework и много всяких примеров по D3DX8 лежит на http://clootie.narod.ru/delphi.Только они используют свою версию DX-заголовков (не ту, что на http://www.crazyentertainment.net).
Ev_genus (2002-12-09 15:45:00) [3]D3DX8. А конкретно ID3DXFont
Sapersky_ (2002-12-07 14:04:00) [4]Какой D3DX - от DX7 или DX8?