‘орум программистов, компьютерный форум CyberForum.ru
Ќаши страницы

—++ дл€ начинающих

¬ойти
–егистраци€
¬осстановить пароль
 
–ейтинг: –ейтинг темы: голосов - 13, средн€€ оценка - 4.69
Necronomicron
58 / 43 / 2
–егистраци€: 09.11.2012
—ообщений: 219
#1

 ак вывести текст на экран, использу€ библиотеку SDL TTF дл€ SDL 2? - C++

14.10.2013, 22:50. ѕросмотров 2104. ќтветов 6
ћетки нет (¬се метки)

¬ официальной доке как-то скомкано написано.
ѕри инициализации SDL TTF и при загрузке шрифта ошибок нет. Ќо текст на экране не по€вл€етс€.
C++
1
2
3
4
    SDL_Color fontColor = { 255, 0, 0, 255 };
    u16 text[] = { '2', 's', '√§' };
    SDL_Surface *place = 0;
    SDL_Surface *info = TTF_RenderUNICODE_Solid(font, text, fontColor);
¬ цикле:
C++
1
2
3
        SDL_BlitSurface(info, 0, place, 0);
        SDL_FreeSurface(info);
        SDL_RenderPresent(renderer);
Ќа вс€кий случай:
C++
1
font = TTF_OpenFont("Fonts/DinCompRegular.ttf", 24);
0
Ќадоела реклама? «арегистрируйтесь и она исчезнет полностью.
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
14.10.2013, 22:50
«дравствуйте! я подобрал дл€ вас темы с ответами на вопрос  ак вывести текст на экран, использу€ библиотеку SDL TTF дл€ SDL 2? (C++):

јналоговые часы использу€ библиотеку SDL. - C++
«дравствуйте, нужно написать программу котора€ будет показывать правильное врем€ на аналоговых часах с трем€ стрелками с помощью библиотеки...

 ак правильно подключить библиотеку SDL - C++
«дравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL. я пользуюсь компил€тором Code::Blocks. ѕри подключении...

 ак внедрить графическую библиотеку SDL в Visual Studio 2012 - C++
Ќикогда не внедр€л сторонних библиотек в Visual Studio. ¬ инете поискал, но так ничего и не пон€л. я вообще хочу подключить SDL 2.0 (качал...

Ёмул€ци€ нажати€ клавиш дл€ SDL - C++
—толкнулс€ с такой проблемой что на эмул€цию нажати€ клавиш, SDL не реагирует. “очнее DOSBox. ѕробовал 2 метода (WINAPI), оба не подход€т....

 ак на SDL 2 нарисовать пиксель? - C++
ƒелаю урок, но он дл€ SDL 1.2, а во второй версии нету функции SDL_SetVideoMode(), и хоть € создаю окно, как переделать этот урок под...

как подключить dll и lib SDL - C++
как подключить к проекту(в Visual Studio 2010) библиотеку SDL?// есть SDL.dll, SDL.lib и SDLmain.lib и еще папка с include'ами

6
coloc
погромист
410 / 246 / 15
–егистраци€: 27.08.2012
—ообщений: 550
«авершенные тесты: 1
14.10.2013, 23:00 #2
÷итата —ообщение от Necronomicron ѕосмотреть сообщение
SDL_Surface *place = 0;
“ы отображаешь текст на неинициализированой поверхности?
0
Necronomicron
58 / 43 / 2
–егистраци€: 09.11.2012
—ообщений: 219
14.10.2013, 23:10  [“—] #3
coloc, € уже по вс€кому пробовал. Ёто где-то в нете нашЄл.  огда пробовал:
C++
1
2
    SDL_Surface *info = TTF_RenderUNICODE_Solid(font, text, fontColor);
    SDL_Surface *place = SDL_CreateRGBSurface(0, info->w, info->h, 32, 0, 0, 0, 0);
ќшибка:
Ќеобработанное исключение по адресу 0x6C7DA01A (SDL2.dll) в Smth.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000000.

ƒобавлено через 6 минут
≈сли закомментировать:
C++
1
SDL_FreeSurface(info);
“о нет ошибки, но текста всЄ равно нет.
0
coloc
погромист
410 / 246 / 15
–егистраци€: 27.08.2012
—ообщений: 550
«авершенные тесты: 1
14.10.2013, 23:12 #4
Ќа —ƒЋ 1.3 точно работает TTF_RenderText. „ерез юникод не хочет работать.
C++
1
2
3
4
5
6
7
8
TTF_Font *font = TTF_OpenFont("font.ttf", 20); //загружаем шрифт
SDL_Color color = { 255, 0, 0 };               //задаем цвет
SDL_Surface *text = TTF_RenderText_Solid(font, "text", color);//делаем текстовый спрайт 
SDL_Rect place = { 100, 100, 0, 0 };                          //место где будет отображен текст
SDL_BlitSurface(text, NULL, screen, place);                   //отображаем текст на экране
                                                    //на —ƒЋ2 нужно иначе                      
SDL_FreeSurface(text);                              //чистим зан€тие ресурсы
TTF_CloseFont(font);
0
Necronomicron
58 / 43 / 2
–егистраци€: 09.11.2012
—ообщений: 219
15.10.2013, 04:12  [“—] #5
coloc, но у мен€ SDL 2 и переходить на старый € точно не буду. я пробовал просто текст, ничего не мен€етс€.

ƒобавлено через 4 минуты
C++
1
SDL_BlitSurface(info, 0, place, &rect);
“еперь ошибки нет, но всЄ равно ничего не отображаетс€.

ƒобавлено через 4 часа 53 минуты
“ак, € решил проблему:
C++
1
2
    u16 text[] = { '2', L'ў', L'√§', L'√Ш' };
    SDL_Surface *info = TTF_RenderUNICODE_Blended(font, text, fontColor);
C++
1
2
3
        SDL_Rect src = { 0, 0, info->w, info->h };
        SDL_Rect dst = { 0, 0, info->w, info->h };
        SDL_RenderCopy(renderer, SDL_CreateTextureFromSurface(renderer, info), &src, &dst);
Ќо по€вилась друга€: в конец добавл€етс€ какой-то мусор, 4-5 символов. Ќе могу пон€ть, откуда оно вообще берЄтс€.
0
alsav22
5421 / 4816 / 442
–егистраци€: 04.06.2011
—ообщений: 13,587
15.10.2013, 07:23 #6
–азве перед '2' не нужно L?
÷итата —ообщение от Necronomicron ѕосмотреть сообщение
в конец добавл€етс€ какой-то мусор, 4-5 символов. Ќе могу пон€ть, откуда оно вообще берЄтс€.
ћожет быть нужен терминальный ноль в массиве.
1
Necronomicron
58 / 43 / 2
–егистраци€: 09.11.2012
—ообщений: 219
15.10.2013, 07:26  [“—] #7
alsav22, внатуре. „от € сам не догадалс€ попробовать...
0
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
15.10.2013, 07:26
ѕривет! ¬от еще темы с ответами:

 ак подключить SDL 2.0 в проекте с CMake? - C++
я использую IDE CLion. я хочу подключить библиотеку SDL 2.0 в CMakeList.txt. я прочитал, что CMake сам может искать библиотеки, но как и...

SDL 2.  ак правильно прилинковать/подключить к Visual Studio? - C++
я пересмотрел много материалов по этой теме, но никакие из них мне не помогли. 1. ѕодключил инклуды. 2. ѕодключил либы (‘айлы *.lib) ...

C++ SDL - C++
¬сем привет! –аботал € значи в SDL, а потом что-то нажалось ил не нажалось и вообщем теперь, при компил€ции любого(работающего,...

”становка SDL 2 - C++
»з-за некоторых проблем с обработкой клавиатуры решил перейти с GLUT на SDL 2. ¬опрос: как на Ubuntu установить этот самый SDL 2? ...


»скать еще темы с ответами

»ли воспользуйтесь поиском по форуму:
7
Yandex
ќбъ€влени€
15.10.2013, 07:26
ќтвет —оздать тему
ќпции темы

 ибер‘орум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
–ейтинг@Mail.ru