на главнуюВсе эхи RU.CPP.CHAINIK
войти ?

Вопрос закрыт. Забыл флипнуть. SDL_ttf

От Виталий (2:5020/175.2) к Виталий

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


From: "Виталий" <kvitalik@mail.ru>

SDL_Flip(screen);


Tue Sep 15 2009 20:21, Виталий wrote to All:

В> From: "Виталий" <kvitalik@mail.ru>

В> Добрый день.

В> Есть простой код, который выводит строчку посредством SDL_ttf. Всё
В> работает.
В> Теперь, если в код добавить отслеживание нажатия клавиш и вывод текства в
В> зависимости от нажатой клавиши, например, при нажатии пробела - вывод
В> текста не отрабатывает.
В> Посмотрите, пожалуйста.
В> Компилятор gcc(mingw), оболочка Dev-C++
В> Спасибо.

В> Hиже представлен код.

В> #include <cstdlib>
В> #include <iostream>
В> #include <SDL/SDL.h>
В> #include <stdio.h>
В> #include <SDL/SDL_ttf.h>

В> using namespace std;
В> //void print_ttf(SDL_Surface *screen, char* message, char* font, int size,
В> SDL_Color color, SDL_Rect dest);

В> void draw(SDL_Surface *screen);

В> int main (int argc, char *argv[])
В> {
В> if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 )
В> {
В> printf("Unable to init SDL: %s\n", SDL_GetError());
В> exit(1);
В> }
В>
В> SDL_Surface *screen;
В> putenv("SDL_VIDEO_WINDOW_POS=50,50");
В>
В> screen=SDL_SetVideoMode(800,600,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_NOFRAME
В> );

В> if ( screen == NULL )
В> {
В> printf("Unable to set 640x480 video: %s\n", SDL_GetError());
В> exit(1);
В> }
В> //Если снять комментарий, то работает
В> //draw(screen);

В> int done=0;
В>
В> while(done == 0){
В>
В> SDL_Event event;
В> while ( SDL_PollEvent(&event) ){
В>
В> if ( event.type == SDL_QUIT ){
В> done = 1;
В> }
В>
В> if ( event.type == SDL_KEYDOWN ){
В>
В> if ( event.key.keysym.sym == SDLK_ESCAPE ){
В> done = 1;
В> }
В> if ( event.key.keysym.sym == SDLK_SPACE ){
В> draw (screen);
В> }
В> }
В>
В> }
В> }
В> SDL_Quit();
В> return EXIT_SUCCESS;
В> }

В> void draw(SDL_Surface *screen){
В> cout << "Yes" <<endl;
В>
В> TTF_Init();
В> SDL_Color clr;
В> clr.r = 255;
В> clr.g = 255;
В> clr.b = 0;
В> SDL_Rect dest;
В> dest.x = 0;
В> dest.y = 0;
В>
В> TTF_Font *fnt = TTF_OpenFont("Unreal.TTF", 34);
В> SDL_Surface *sText = TTF_RenderText_Blended( fnt, "Test", clr);
В> SDL_BlitSurface( sText,NULL, screen, &dest );
В> SDL_FreeSurface( sText );
В>
В> TTF_CloseFont( fnt );
В>
В> //print_ttf(screen, "Тест", "Unreal.TTF", 34, clr, dest);
В> TTF_Quit();
В> }

В> //void print_ttf(SDL_Surface *screen, char *message, char* font, int size,
В> SDL_Color clr, SDL_Rect dest){

В> // TTF_Font *fnt = TTF_OpenFont(font, size);
В> // SDL_Surface *sText = TTF_RenderText_Blended( fnt, message, clr);
В> // SDL_BlitSurface( sText,NULL, screen,&dest );
В> // SDL_FreeSurface( sText );
В> // TTF_CloseFont( fnt );
В> //}

--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.CPP.CHAINIK?msgid=2:5020/175.2+abecfa94