Главная страница
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.037 c
1-1108808059
Kiriill
2005-02-19 13:14
2005.03.06
EXE


1-1108727058
HydraMarat
2005-02-18 14:44
2005.03.06
Методы класса или поля record а?


9-1101559442
AbLaZe
2004-11-27 15:44
2005.03.06
карта для RPG


14-1108125817
SteelMan
2005-02-11 15:43
2005.03.06
специальность: 071900 "Информационные системы и технологии"


1-1108993340
АМБ
2005-02-21 16:42
2005.03.06
Hint