Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
4-1105877516
KILLMAN
2005-01-16 15:11
2005.03.06
отследить открытие/закрыте CD-ROM


14-1108307582
Kerk
2005-02-13 18:13
2005.03.06
Подскажите...


14-1108528503
Artvz
2005-02-16 07:35
2005.03.06
CRC32


1-1109187364
Коля
2005-02-23 22:36
2005.03.06
Зачем Refresh и Repaint, если одго и то же?


1-1109016306
Wonderer
2005-02-21 23:05
2005.03.06
Товарищ Панов! Это что, не тема сообщения?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский