![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Текстурный шрифт [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
elected © (2004-11-18 03:34:00)Мастера, подскажите п лучьше примерчик
нужно обтянуть любой текстурой любой шрифт
не картинками 1,2,3,4,5,6,а,б,в
а именно взять фонт задать ему разме и обтянуть текстурой
на выходе получить картинку
elected (2004-11-18 18:52:00) [1]Спасибо
> wicked ©
Если у кого еще что нибудь есть по этой теме - пишите, буду благодарен!
wicked (2004-11-18 13:56:00) [2]соль примера - в строках:
> BeginPath(Canvas->Handle);
> // prevent the text box's outline from being added to the
> path
> SetBkMode(Canvas->Handle,TRANSPARENT);
> Canvas->TextOut(x,y,text);
> EndPath(Canvas->Handle);
> // now the path can be used as clipping region - we draw
> a grid of lines on
> // the whole screen, but only the drawing within the path
> will appear
> SelectClipPath(Canvas->Handle,RGN_COPY);
ЗЫ если этого мало, то я пас - я раздаю удочки, а не рыбу....
wicked (2004-11-18 13:54:00) [3]пример для ленивых... на билдере:
int x=0, y=0;
const char *text="The quick brown fox";
// begin path recording - in this case, just one string of text
HFONT font = GetStockObject(SYSTEM_FONT);
LOGFONT lf;
memset(&lf, 0, sizeof(lf));
GetObject(font, sizeof(lf), &lf);
lf.lfHeight = 100;
lf.lfWidth = 50;
lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;
lf.lfQuality = PROOF_QUALITY;
memset(lf.lfFaceName, 0, sizeof(lf.lfFaceName));
font = CreateFontIndirect(&lf);
Canvas->Font->Handle = font;
BeginPath(Canvas->Handle);
// prevent the text box's outline from being added to the path
SetBkMode(Canvas->Handle,TRANSPARENT);
Canvas->TextOut(x,y,text);
EndPath(Canvas->Handle);
// now the path can be used as clipping region - we draw a grid of lines on
// the whole screen, but only the drawing within the path will appear
SelectClipPath(Canvas->Handle,RGN_COPY);
int i=0;
for (i=0;iMoveTo(i,0);
Canvas->LineTo(i,Height);
}
for (i=0;iMoveTo(0,i);
Canvas->LineTo(Width,i);
}
elected (2004-11-18 13:51:00) [4]Мне примен нужен =-)))
А не пойди туда незнаю куда, там вроде есть пример, но типа я не помню работает он или не работает =-)))
А еще там непомню где я тоже видел что-то подобное вроде у борланда
вобщем разбирайся сам нефиг туту писать =-))))
Помощь мне нужна а не болтавня!
wicked (2004-11-18 13:09:00) [5]как всё сложно.... :))
читаем раздел msdn, повествующий о Paths... там как раз такие примеры.... да и на борландовском сайте тоже пример такой есть - лично качал...
единственное ограничение такого способа - необходимость использования только TrueType (OpenType?) шрифтов, а именно - заставить фонт-маппер давать именно такой шрифт по его LOGFONT-описанию (у меня не удалось, а в примере жестко было забито имя TrueType-шрифта)...
elected (2004-11-18 12:42:00) [6]А лучше вообще с помошью WinAPI
но если так нельзя то DirectX предпочтительн, так как везде почти присутствует
elected (2004-11-18 12:39:00) [7]DirectX
DelpiX
[lamer]Barmaglot (2004-11-18 09:39:00) [8]OpenGL? DirectX?