Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Témata - fridlik

#1
Programování / graficka knihovna SDL
05. 05. 2011, 18:19:27
zdravim
potrebuju napsat semestralni praci pomoci teto knihovny, mam ale problem se spustenim. Kdyz program po kompilaci spustim, tak to vypise chybu Unable to open a console terminal. To jsem zjistil, ze se da odstranit kdyz program spustim jako root.
Pak se ale objevi dalsi chyba, ktera je uz spojena s vykreslovanim. Kdyz inicializuju SDL_Surface tak me problikne jen obrazovka jako kdyby to hned spadlo a vyhodi to chybu Couldn't set console screen info. Zkousel jsem vsechno mozny jak to spustit az jsem zjistil, ze se to spusti jen kdyz zadam rozliseni stejny jako mam displej. Jenze ja bohuzel nemuzu mit takhle velkou obrazovku. Nenapada nekoho jak to resit? Dik moc za pomoc.


#include <stdio.h>
#include <SDL/SDL.h>

int main(int argc, char *argv[])
{
printf("Hello, SDL!\n");
printf("Press ESC key to quit.\n");

// Inicializuje se pouze SDL video
if(SDL_Init(SDL_INIT_VIDEO) == -1) //zde to pada kdyz to nespustim pod rootem
{
fprintf(stderr, "Unable to initialize SDL: %s\n",
SDL_GetError());
SDL_Quit();
return 1;
}

// Vytvori okno 1366x768 s implicitni barevnou hloubkou, kdyz skusim treba 640x480 tak to nejede
SDL_Surface *screen;
screen = SDL_SetVideoMode(1366, 768, 32,SDL_HWSURFACE| SDL_FULLSCREEN );
if(screen == NULL)
{
fprintf(stderr, "Unable to set 640x480 video: %s\n",
SDL_GetError());
SDL_Quit();
return 2;
}
// Titulek okna
SDL_WM_SetCaption("Hello, SDL!", NULL);

int done = 0;
SDL_Event event;

// Hlavni smycka programu
while(done == 0)
{
// Smycka na zpracovani udalosti
while(SDL_PollEvent(&event))
{
// Vetvi podle typu udalosti
switch(event.type)
{
// Udalost klavesnice
case SDL_KEYDOWN:
// Vetvi podle klavesy
switch(event.key.keysym.sym)
{
// Klavesa ESC */
case SDLK_ESCAPE:
done = 1;
break;

default:
break;
}
break;
// Zprava s pozadavkem na ukonceni
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
// TODO: Tady by se vykreslovalo
}
// Deinicializace SDL a konec
SDL_Quit();
return 0;
}