Afișare pe ecran complet în opengl

Pe măsură ce OpenGL a devenit popular cu producătorii de jocuri PC, a apărut întrebarea: cum să folosiți OpenGL pentru a efectua redarea pe tot ecranul? De fapt, dacă citiți acest capitol de la început, deja știți cum să utilizați OpenGL pentru a efectua vizualizarea pe tot ecranul - la fel ca vizualizarea în orice altă fereastră! Corect această întrebare ar trebui formulată după cum urmează: cum să creați o fereastră care să ocupe întregul ecran și fără o margine în jurul marginilor? De îndată ce se poate face acest lucru, vizualizarea în această fereastră nu se va deosebi de vizualizarea din orice altă fereastră, analizată în exemplele acestei cărți. Deși această problemă nu este strict legată de OpenGL, este de interes pentru majoritatea cititorilor, așa că să examinăm mai îndeaproape acest lucru.

Crearea unei ferestre fără chenar

Prima sarcină este crearea unei ferestre care nu are un cadru sau o semnătură. Această procedură este destul de simplă. Mai jos este codul pentru crearea unei ferestre din programul GLRECT. Singurul lucru pe care l-am făcut a fost să folosim stilul ferestrei WS_POPUP în loc de WS_OVERLAPPEDWINDOW.

Afișare pe ecran complet în opengl

Rezultatul programului cu acest cod este prezentat în Fig. 13.9 După cum puteți vedea, dacă nu configurați corect stilul, fereastra nu va avea o semnătură sau un cadru. Nu uitați că acum fereastra nu conține un buton, pe care faceți clic pe care îl puteți închide. Pentru a părăsi programul acum, utilizatorul trebuie să apese pe Alt + F4. Majoritatea programelor așa-numite "ușor de utilizat" pentru finalizare așteaptă intrarea utilizatorului de la tastatură (de exemplu, apăsând o tastă sau).

Creați o fereastră pe ecran complet

Crearea unei ferestre care are dimensiunea unui ecran este aproape la fel de banală ca și crearea unei ferestre fără semnătură sau cadru. Parametrii funcției CreateWindow vă permit să specificați unde va fi localizat colțul din stânga sus al ferestrei, precum și să specificați lățimea și înălțimea ferestrei. Pentru a crea o fereastră pe ecran complet, utilizați întotdeauna (0,0) ca colțul din stânga sus. Singura problemă este modul de determinare a dimensiunii desktopului, astfel încât să puteți specifica lățimea și înălțimea corectă a ferestrei. Această informație este ușor de obținut utilizând funcția Windows GetDeviceCaps.

Listarea 13.9 (fragment de program FSCREEN) prezintă o nouă versiune a funcției WinMain. Pentru a utiliza GetDeviceCaps, aveți nevoie de un dispozitiv de tratare a contextului dispozitivului. Deoarece suntem în curs de creare a ferestrei principale, trebuie să folosim contextul ferestrei desktop.