index | << | >> |
03.2 Visão geral O usuário pode rodar sua aplicação em um computador com configuração inferior ou ainda em condições limitadas como um netbook ou um tablet etc. Então é importante que sua aplicação verifique as condições do hardware aonde está sendo rodada e que se adapte aos limites dessas condições quando isto não comprometer a finalidade da mesma. Se não der pra rodar mesmo, pelo menos sua aplicação deve sair do ar com graciosidade enquanto informa o usuário das condições mínimas de hardware para executá-la. Nesta seção vamos aprender como obter uma lista de modos de vídeo disponíveis para serem usadas na função dbSetDisplayMode(). Obtendo a lista de modos de vídeo disponíveis
// janela02.cpp // Esse programa mostra como obter a lista de video disponíveis #include "DarkGDK.h" void initsys(); void tst_janela02(); // Cores int nPreto = 0; int nBranco = 0xFFFFFF; void DarkGDK ( void ) { // Começo da aplicação DarkGdk initsys(); tst_janela02(); while ( LoopGDK ( ) ) { dbSync ( ); } // fim do while return; } // fim da função: DarkGDK void initsys() { // Esta função inicializa o sistema dbSyncOn( ); dbSyncRate (60); dbSetWindowOn(); // Definindo modo janela dbSetDisplayMode(800,600,32); // Definindo o modo de vídeo dbCLS(nBranco); dbInk(nPreto, nBranco); // Configurando a janela dbSetWindowTitle("janela02.cpp"); dbSetWindowSize (800,600); dbSetWindowPosition (320,20); } // fim da função: initsys() void tst_janela02 () { // Esta função obtém a lista de modos de video disponíveis char txt[255]; // Propriedades de vídeo int nLargura, nAltura, nProfundidade; int ncx; // Nosso contador básico int nqtd; // Aqui vai a quantidade total de modos de vídeo dbPerformChecklistForDisplayModes(); // Pesquisa modos de vídeo... nqtd = dbChecklistQuantity(); // ...e retorna quantidade total disponível // Cabeçalho de apresentação da lista dbPrint(); dbPrint(" #ncx: (largura, altura, profundidade)"); dbPrint("------------------------------------------"); for (ncx=1; ncx < nqtd; ncx++) { // Obtém largura, altura e profunidade do modo de vídeo #ncx nLargura = dbChecklistValueA(ncx); nAltura = dbChecklistValueB(ncx); nProfundidade = dbChecklistValueC(ncx); // Mostra capacidade de vídeo sprintf(txt, " #%d: (%d, %d, %d)", ncx, nLargura, nAltura, nProfundidade); dbPrint (txt); } // fim do for } // fim tst_janela02()dbPerformChecklistForDisplayModes(); Essa função produz uma lista com todos os modos de vídeo disponíveis. nqtd = dbChecklistQuantity(); Essa função retorna a quantidade total de modos de vídeo disponíveis. nLargura = dbChecklistValueA(ncx); Essa função retorna a largura do modo de vídeo referente ao índice da lista especificado (ncx). nAltura = dbChecklistValueB(ncx); Essa função retorna a altura do modo de vídeo referente ao índice da lista especificado (ncx). nProfundidade = dbChecklistValueC(ncx); Essa função retorna a profundidade de cor do modo de vídeo referente ao índice da lista especificado (ncx). Nas funções acima o argumento ncx que representa um índice de acesso a um item numa lista e o valor de retorno são do tipo int.
index | << | >> |
Produzido por Gameprog: Jair Pereira - Setembro/2013 © gameprog.br@gmail.com http://www.gameprog.com.br http://www.nucleoararat.com.br