segunda-feira, 1 de março de 2010

Iniciando o SDL.(2)

Acho que agora vou conseguir começar esses tutoriais^^.
Vamos começar:

Para que possamos usar as funções da SDL primeiro temos que iniciá-la,
segue o código:


if (SDL_Init(SDL_INIT_VIDEO) != 0) {
 printf("Não foi possível iniciar a SDL: %s\n", SDL_GetError());
 return 1;
}

Nesse trecho o programa inicializa a biblioteca apenas com as funções de vídeo,
se desejar-mos inicializar o audio
também teremos que modificar para:

if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0) {
 printf("Não foi possível iniciar a SDL: %s\n", SDL_GetError());
 return 1;
}

E adicionamos as flags de todos os sub-sistemas que queremos inicializar,
por hora vamos nos ater somente ao video.
Como temos o vídeo inicializado, podemos agora abrir uma janela para que possamos
mostrar o nosso programa:

SDL_Surface *screen;
 
screen = SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF | SDL_FULLSCREEN);
if (screen == NULL) {
 printf("Não foi possível escolher o modo de video %s\n", SDL_GetError());
 return 1;
}

obs: screen é um ponteiro para a tela do programa, uma surface da sdl.

Usamos a função SDL_SetVideoMode para escolher o modo de vídeo que iremos utilizar.
No exemplo,selecionamos largura 640, altura 480, profundidade da cor de 16 bits e
opções como duplo buffer e tela cheia. Ao final testamos para ver se screen existe e
caso contrário o programa emite um erro
com a descrição dada pela SDL (em inglês) e termina.

Ao fechar o programa devemos fechar a SDL primeiro, para isso usamos a função atexit:

atexit(SDL_Quit);

Essa função faz com que antes do fim do programa a função de fechar a SDL SDL_Quit
seja chamada automaticamente, não importa em que parte do programa seja o fim do mesmo.

Bom, por hoje é só. Na proxima parte irei explicar como mostrar uma imagem na tela.
Agora aqui vai o código completo que  não faz nada^^ só abre uma janela e fecha logo
em seguida, mas tá aí pra quem quiser testar. Até.