3.2.1. GERENCIAMENTO DE JANELAS

 

As principais classes do grupo ClanLib Display são CL_DisplayWindow e CL_DisplayWindowDescription. Ambas as classes permitem a criação de uma janela, que será necessária em todo o jogo para possibilitar a exibição de objetos gráficos na tela.

O código de criação de uma janela utilizando-se CL_DisplayWindow poderia ser simplesmente:

 

1  CL_DisplayWindow window("Jogo ", 640, 480);

 

Um objeto da classe CL_DisplayWindow possibilita acesso aos seguintes recursos:

·         um contexto gráfico, para renderização na janela;

·         um contexto de entrada, para obtenção de entradas do usuário;

·         um buffer para pontos de imagem (pixel buffer);

·         gerenciamento da janela, para utilização de funções como: definir a posição da janela, torná-la tela cheia, etc.

 

A criação da mesma janela poderia também ser feita através de CL_DisplayWindowDescription com o seguinte código:

 

1   CL_DisplayWindowDescription desc;

2   desc.set_title("Jogo");

3   desc.set_size(CL_Size(640, 480));

4   CL_DisplayWindow window(desc);

 

O código anterior cria um objeto do tipo CL_DisplayWindowDescription (linha 1), define seu título (linha 2) e suas dimensões (linha 3) e finalmente passa esse objeto como parâmetro na criação de um objeto da classe CL_DisplayWindow.

A criação de um objeto CL_DisplayWindowDescription  permite a utilização de funções não disponíveis diretamente em CL_DisplayWindow, como, por exemplo, as funções set_allow_resize() e set_refresh_rate(), que permitem definir se a janela pode ser dimensionada e a taxa de atualização da janela respectivamente.