Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Текстурный шрифт   Найти похожие ветки 

 
elected   (2004-11-18 03:34) [0]

Мастера, подскажите п лучьше примерчик
нужно обтянуть любой текстурой любой шрифт
не картинками 1,2,3,4,5,6,а,б,в
а именно взять фонт задать ему разме и обтянуть текстурой
на выходе получить картинку


 
[lamer]Barmaglot ©   (2004-11-18 09:39) [1]

OpenGL? DirectX?


 
elected   (2004-11-18 12:39) [2]

DirectX
DelpiX


 
elected   (2004-11-18 12:42) [3]

А лучше вообще с помошью WinAPI
но если так нельзя то DirectX предпочтительн, так как везде почти присутствует


 
wicked ©   (2004-11-18 13:09) [4]

как всё сложно.... :))
читаем раздел msdn, повествующий о Paths... там как раз такие примеры.... да и на борландовском сайте тоже пример такой есть - лично качал...
единственное ограничение такого способа - необходимость использования только TrueType (OpenType?) шрифтов, а именно - заставить фонт-маппер давать именно такой шрифт по его LOGFONT-описанию (у меня не удалось, а в примере жестко было забито имя TrueType-шрифта)...


 
elected   (2004-11-18 13:51) [5]

Мне примен нужен =-)))
А не пойди туда незнаю куда, там вроде есть пример, но типа я не помню работает он или не работает =-)))
А еще там непомню где я тоже видел что-то подобное вроде у борланда
вобщем разбирайся сам нефиг туту писать =-))))
Помощь мне нужна а не болтавня!


 
wicked ©   (2004-11-18 13:54) [6]

пример для ленивых... на билдере:
 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;i<Width;i+=7)
 {
   Canvas->MoveTo(i,0);
   Canvas->LineTo(i,Height);
 }
 for (i=0;i<Height;i+=7)
 {
   Canvas->MoveTo(0,i);
   Canvas->LineTo(Width,i);
 }


 
wicked ©   (2004-11-18 13:56) [7]

соль примера - в строках:
>  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);


ЗЫ если этого мало, то я пас - я раздаю удочки, а не рыбу....


 
elected   (2004-11-18 18:52) [8]

Спасибо
> wicked ©

Если у кого еще что нибудь есть по этой теме - пишите, буду благодарен!



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1109060871
Maks Realov
2005-02-22 11:27
2005.03.06
Как лучше реализовать запись множества дин. данный в файл?


1-1108758793
Muhan
2005-02-18 23:33
2005.03.06
Как создать кнопку(button) в программе


4-1105072861
-[ HAWK ]-
2005-01-07 07:41
2005.03.06
Стили


1-1108629629
Laymer
2005-02-17 11:40
2005.03.06
TWebBrowser


1-1108899749
Jel
2005-02-20 14:42
2005.03.06
Показать SQL Builder в Run-Time