SDL2 Criando uma janela

Dando inicio à série de tutoriais da SDL, a primeira tarefa será a criação de uma janela. 


INFORMAÇÃO IMPORTANTE PARA OS TUTORIAIS!
Qualquer método da SDL que encontrar aqui e não entender sua função, Pesquise-a na WIKI da SDL. Para isso, basta colocar o nome do método na aba Search WIKI. Link para a wiki da SDL https://wiki.libsdl.org/FrontPage


Inicie um novo projeto e antes de tudo, inclua a biblioteca SDL2/SDL.h
Dentro do main, devemos inicializar o que vamos utilizar. Exemplo, se o programa que estou fazendo ter apenas sistema de vídeo preciso inicializar apenas o vídeo, se tiver vídeo e som, deve inicializar o vídeo e som. Para fazer isso, escrevemos SDL_Init("Sistemas utilizados")
No nosso programa, utilizaremos apenas o vídeo portanto : SDL_Init(SDL_INIT_VIDEO)
Veja neste link as diferentes formar de inicialização da SDL: https://wiki.libsdl.org/SDL_Init

As janelas são administradas pelo sistema operacional, oque fazemos é "pedir" para que o sistema a crie para nós. Para criar a janela, devemos criar a variável onde ela será armazenada, o tipo dela é 
SDL_Window. Como uma variável normal, as variáveis na SDL funcionam da mesma forma, primeiro o tipo e logo depois o nome. Portanto SDL_Window *janela é o nome da nossa variável. Não se esqueça do ponteiro pois ele é fundamental para o funcionamento do programa e sempre inicialize essas variáveis com NULL.

Vejamos o que fizemos até agora:


#include <SDL2/SDL.h>
#include <iostream>
using namespace std;

int main(int argc, char **argv) {
SDL_Init(SDL_INIT_VIDEO);//Inicializa a SDL
SDL_Window *janela = NULL;//Variavel da janela


Agora, vamos efetivamente criar a janela. A criação da janela funciona com a função SDL_CreateWindow, os parâmetros são o nome da janela, a posição X , a posição Y, a largura, a altura e a forma de como mostrar a janela.  a variavel SDL_Window que criamos, receberá a função SDL_CreatWindow.

Agora que criamos nossa janela, precisamos que ela permaneça na tela, podemos fazer isso com SDL_Delay que aguarda o numero de segundos solicitados antes de continuar o programa.

vejamos:

janela = SDL_CreateWindow("Minha Janela", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
//cria a janela

SDL_Delay(3000);//Espera 3 segundos

Agora precisamos liberar janela que criamos para não ocupar espaço na memoria e também poder fecha-la.
Utilizamos a função SDL_DestroyWindow() cujo o parametro é o nome da variável que utilizamos para criar a janela.


SDL_DestroyWindow(janela);
SDL_Quit();

return 0;
}

retorne e feche a main.
Por fim, execute o programa.

Uma janela como essa deverá aparecer por alguns segundos:


Faça o dowload do projeto aqui: https://drive.google.com/open?id=0B9s0AqjHtGwGZldfOGhpYTlJdlE

Agora que já sabe como criar uma janela na SDL, podemos dar continuidade com as demais funções da biblioteca.

Veja como adicionar uma imagem: http://gpjecc.blogspot.com.br/2016/04/sdl2-imagem.html

Alguma duvida? comente abaixo!