Nybörjarguide till OpenGL: Bygg din egen CAD-program (5 / 14 steg)

Steg 5: Bygga: att göra ett fönster

The Basic-kod måste du kompilera och köra är som nedan. Nu, det kan vara mycket kortare, men jag vill införa vissa viktiga begrepp i det här steget och slutföra detta instructable i en ändlig tid.



Låt oss ta en närmare titt på initiering

SDL_Init initierar sdl till ett läge som du vill använda. Specifikt, finns det 8 lägen i SDL som inkluderar Audio, CD-ROM, fil I/O, Joystick hantering, Threading, händelse hantering, Timers, Video (den som vi använder). Nu är vårt behov just nu endast SDL_INIT_VIDEO.

De nästa tre raderna kod helt enkelt skapa ett fönster för oss att använda. skärmen är en variabel av typen

SDL_Window *skärmen;

I denna variabel, vi lagrar returvärdet för SDL_CreateWindow() som returnerar ett fönster om framgångsrika eller en NULL om misslyckade.

i SDL_CreateWindow(),

1) det första argumentet detaljer på fönstrets namnlist,

2) det andra och tredje argumentet ge standardplatsen för fönstret på skärmen vid start

3) fjärde och femte argumentet anger skärmens storlek, jag har skapat två variabler Fönsterhöjd = 1020; och fönstret bredd = 610 och att lagra denna information.

4) det sjätte argumentet är för en flagga, som kan ange saker som om fönstret kan storleksändras eller om det bör minimeras vid start osv kan du hitta fler flaggor i länkarna längst ner i detta steg.

Funktionen nästa SDL_CreateContext() är unik för varje fönster. SDL2 infördes ett nytt system som du kan skapa flera fönster. men för varje fönster, måste du skapa ett sammanhang som i princip lagrar alla statens förknippas med denna instans av OpenGL.

Som jag sa innan, OpenGL är en tillståndsdator. Vår ansökan kan ha flera fönster, så openGL måste veta vilket fönster att göra grafik till, så vi använder

SDL_GL_MakeCurrent (, )

att berätta openGL vilket fönster att rendera till. OpenGL kommer att fortsätta att göra till ett visst set fönster tills du återanvända nuvarande SDL_GL_Make om du vill ange ett annat fönster.

Nästa, låt oss ta en titt på while() slingan

Nu är detta den viktigaste loop där vi kommer att göra vår skärm och kontroll för händelser. Denna loop körs tills exit villkoret är sant dvs vi avsluta programmet genom att trycka på knappen kors på toppen av fönstret.

Jag har skapat en variabel = 0; som slingan kommer att kontrollera vid varje iteration. Om du = 1, programmet har nöjd exit skick och loopen avslutas och programmet stängs.

SDL_Event händelsen skapar form av en bunt med olika händelser sorterade efter prioritet för händelsen. Vid varje ny iteration, ansökan staten kommer att uppdateras och i varje iteration av loopen, kan användaren trycker på tangenter, klicka på knappar eller flytta musen etc.

SDL_PollEvent (& event); befolkar händelsen med de olika händelser som inträffar i varje iteration.

det vill säga i varje iteration av while loop, variabeln händelse kommer att vara nyinsatta med händelsedata över och över igen.

genom att placera SDL_PollEvent (& event); i ett tag loop

medan (SDL_PollEvent (& event))

{

}

Vi kan utvärdera händelser från händelsen stacken i variabeln händelse tills det finns inga fler händelser i den händelsen variabel.

i det kapslade medan loop, när vi på SDL_QUIT händelse som i princip säger oss på röda korset-knappen på toppen av ansökan har tryckts och användaren är nu avsluta programmet.

Den sista funktionen är SDL_GL_SwapWindow(screen).

Nu är allt återges på skärmen i OpenGL lagras i ett minnesområde som kallas rambuffert. När du uppdaterar skärmen med en ny bild på varje ram, ram buffertar innehållet raderas och befolkade med ny grafik. praktiskt taget denna process tar tid och om vi kör vår ansökan detta sätt som vi skulle se en massa flimmer som ritade den nya bilden tar tid i rambuffert.

Men med begreppet minne bytande, vi kan hindra denna effekt. Vi definierar två minnesområden, bufferten som främre och bakre bufferten, skärmen pekar på främre bufferten och visas bilden i främre bufferten. Nästa bild ritas är laddad i bakre bufferten medan skärmen visar innehållet i det främre buffert, så istället för att kopiera innehållet i ryggen buffert till främre bufferten, skärmen pekar på bakre bufferten istället nästa bildruta dras direkt, och främre bufferten fylls med nästa bildruta och skärmen ändras igen och så vidare. I huvudsak vi definiera till minnesplatser och ladda data till dem sida vid sida dvs bilden som ska visas och nästa bild att visas och hålla byta skärm pekaren mellan två.

Lyckligtvis i OpenGL, behöver vi inte gå in på det mycket komplexitet och bara anropa en funktion för att uppnå en fin skärm och förhindra flimmer:

SDL_GL_SwapWindow (),

Den sista sak att göra stängs programmet och avyttra alla resurser vi använt.

Externa länkar och referenser för vidare forskning:

SDL_Init()- https://www.libsdl.org/release/sdl-1.2.15/docs/htm...

SDL_CreateWindow()- https://wiki.libsdl.org/SDL_CreateWindow

SDL_GL_MakeCurrent()- https://wiki.libsdl.org/SDL_GL_MakeCurrent

SDL_PollEvent()- https://wiki.libsdl.org/SDL_PollEvent

Se Steg
Relaterade Ämnen

Nybörjarguide till att bygga Arduino robotar med Bluetooth och Android

i den här guiden vi gå mot att skapa en Arduino robot som kan styras via bluetooth med en Android-telefon/tablett. Detta är en Nybörjarguide som kommer att kort gå över ledningar och programmering din robot.Steg 1: Bygga lista... Följande är en lista...

Nybörjarguide till att ansluta din RC plan elektroniska delar

Jag gillar bygga RC flygplan. Ett problem jag hade var som inte kunde hitta en guide till grunderna i ansluta alla elektronik delar tillsammans (på instructables). Förhoppningsvis hjälper denna I'ble dig att komma igång med ditt RC plan.Mitt mål är a...

Hur till bygga din egen rörliga Tardis!

Få din "hur att bygga din egen Tardis Kit" & en annan klar Tardis för skala.Steg 1: Steg 1 öppna Tardis Kit Steg 1 Öppna "Hur att bygga din egen Tardis Kit"Kontrollera att du har alla bitar du behöver!Steg 2: Steg 2 sätta lampa i T...

Hur till bygga din egen MUGEN deltagarlistan

har du någonsin velat göra din egen fighting spel men inte har tid eller kunskap att göra det? Bra MUGEN är det första steget för alla fighting spel med dessa drömmar att starta. Med MUGEN, kan du bygga din egen fightingspel med alla tecken du vill,...

Hur till bygga din egen vikt maskin

hur att bygga din egen vikt maskin och spara en massa pengar,...

Bygga din egen elektrisk motorcykel

ÖversiktDet färdiga projektet är en 1981 Kawasaki KZ440, omvandlas till elektriska. Den drivs av fyra Optima gul topp förseglade (AGM) bly-syra batterier, som driver en Briggs & Stratton Etek elmotor. Hastigheten på motorn styrs av en Alltrax varumär...

Bygga din egen gateway brandvägg

lär dig att bygga din egen gateway brandvägg med FreeBSD® och gamla PC delar. Brandväggen kommer att bestå av PF brandväggen, Snort-ID: N, olika IPS applikationer, Squid proxy och några intuitivt webbgränssnitt för revision. Kostnaden för detta proje...

Nybörjarguide till felsökning i MPLABX med ChipKIT PRO MX7 av DIGILENT

Detta Instructable är en Nybörjarguide till felsökning kod programmerat i MPLAB X IDE v2.0. De åtgärder som omfattas är gemensam tillämpning av debugger programvara och problem jag stött på som en nybörjare användare och en oerfaren programmerare. In...

En Wide Body Quadrotor - mönster och idéer för att bygga din egen.

Multirotors--hur coola de är!En quadrotor är en typ av multirotor flygplan. Dessa flygplan är enklare än någonsin att bygga. Du kan börja med denna maskin och öka dess kapacitet (och komplicerade) som du lära dig mer. Din erfarenhet, kunskap och resp...

Bygga din egen "Spy Satellite"

Jag har alltid trott det skulle vara snyggt att ha din egen "Spion" satellit. Det faktum att vi har vår egen Spy satelliter reser runt jorden bara förvånar mig. Så varför inte ha din egen? Följande instructable visar hur att göra just det, bygga...

Bygga din egen hake dator

Datorer har blivit allt mer svårare att tränga in och lära dig hur de fungerar. Med denna installation, använder en gammal z80 8 bitars mikroprocessor, kan du lära dig hur en dator fungerar i detalj och används för att utöka din elektronik projekt! H...

Bygg din egen (billigt!) multi-function Trådlös kamera controller.

IntroductionNågonsin tyckte att bygga din egen kamera controller?VIKTIGT: Kondensatorer för MAX619 är 470n eller 0.47u. Schematiskt är korrekt, men komponentlistan var fel - uppdaterad.Detta är en post i Digital dagar tävlingen så om du tycker det är...

Bygga din egen hund hus

Detta var min allra första instructable. Jag diskuterade med ett projekt att bygga för en klass, när det slag av föll i mitt knä. Jag hoppas alla nybörjare och nybörjare hundägare både, njuta av det.Att vara en helt ny stolt valp ägare, tog jag de up...

DIY, BYGGA DIN EGEN DIGITALA BINARY CLOCK!

Detta Instructable visar hur man bygger en digital klocka på enklaste sätt. Du behöver bara några verktyg och lite tid...Steg 1: Introduktion Det finns två sätt att bygga din egen binär klocka.1.-en är till göra din egen PCB. Att lära sig lite av mik...

Bygga din egen dator

varför skulle någon gå ut och köpa en dator från en manufaturer som Dell eller Gateway, när de kunde bygga en mer kraftfull dator för mindre pengar? Svaret, de vet inte hur man bygger den.Detta kanske låter som en komplicerad process, men i alla verk...

Bygg din egen elbil!

"Electro-Metro" projektet.Har inte råd en Nissan Leaf? Inga problem!Bygga en billig elbil själv genom att ta bort den bilen motorn, ersätta den med en gaffeltruck motor, och lägga till batterier.Jag har massor av videor om projektet på:http://ww...

Bygga din egen jorden ugn

Vem älskar inte läcker vedeldad ugn pizza? INGEN.Jag hade en dröm om bakgård pizza part kul gånger och började göra en del efterforskningar att göra det dröm verklighet.Först tittade jag på material kostnaden för en tegelugn (spoiler alert: de är all...

Bygg din egen hörsel Augmented Seashell!

i detta Instructable jag kommer att förklara hur man bygger din egen hörsel Augmented Seashell. Nu, innan vi börjar, vad är en auditiv Augmented Seashell?Svar: i princip är det en snäcka kan producera andra ljud än det redan gör. En snäcka producerar...

Bygga din egen Mobility Rehab handikappade Scooter för mindre än $500

Jag kan visa dig hur du konverterar en rakkniv E300 skoter, föreslår jag att du köpa från Amazon.com bör vara omkring $250, i din egen Rehab handikappade scooter. E300 skoter får du har bara en hastighet. Hög hastighet, eller kusten, inget däremellan...