Beginners Guide to OpenGL: Maak uw eigen CAD-software (5 / 14 stap)

Stap 5: De bouw: maken van een venster

The Basic-code je moet compileren en uitvoeren is als onder. Nu, het veel korter kan zijn, maar ik wil introduceren van belangrijke begrippen in deze stap en vult dit instructable in een eindige hoeveelheid tijd.


Neem een dichtere blik bij initialisatie

SDL_Init initialiseert de sdl naar een modus die u wilt gebruiken. Specifiek, zijn er 8 modi in SDL waaronder Audio, CD-ROM, bestand i/o-, Joystick Handling, Threading, gebeurtenis afhandeling, Timers, Video (degene die we gebruiken). Nu is onze behoefte op dit moment alleen de SDL_INIT_VIDEO.

De volgende drie coderegels Maak gewoon een venster voor ons om te gebruiken. scherm is een variabele van het type

SDL_Window *scherm;

In deze variabele, we slaan de geretourneerde waarde van de SDL_CreateWindow() die een venster als resultaat gegeven als succesvol of NULL als mislukte.

in SDL_CreateWindow(),

1) het eerste argument gegevens de venstertitel,

2) de tweede en derde argument geven de standaardlocatie van het venster op het scherm bij het opstarten

3) het vierde en vijfde argument geeft u de grootte van het scherm, ik heb twee variabelen windowHeight = 1020; en Vensterbreedte = 610; deze informatie op te slaan.

4) het zesde argument is voor een vlag, die dingen zoals opgeven kunt of het venster kan worden aangepast of dat het bij het opstarten enz vindt u meer vlaggen in de links onderaan deze stap moet worden geminimaliseerd.

De volgende functie SDL_CreateContext() is uniek voor elk venster. SDL2 een nieuw systeem ingevoerd waarmee u meerdere vensters kunt maken. maar voor elk venster, moet u een kader waarin alle van de staat die hoort bij dit exemplaar van OpenGL in principe worden opgeslagen.

Zoals ik voordien zei, OpenGL is een statusmachine. Onze applicatie wellicht meerdere vensters, zodat openGL welk venster te renderen van de graphics, weten moet dus we gebruiken

SDL_GL_MakeCurrent (, )

om te vertellen openGL welk venster te renderen aan. OpenGL zullen blijven geven aan een bepaald Stel venster totdat u opnieuw huidige SDL_GL_Make als u een ander venster wilt gebruiken.

Vervolgens laten we een kijkje nemen op de while() -lus

Nu is dit de hoofdlus waarin wij zullen onze scherm renderen en controleren voor gebeurtenissen. Deze lus wordt uitgevoerd totdat de uitgangsvoorwaarde dat d.w.z. we stoppen de toepassing klopt door de cross te drukken op de bovenkant van het venster.

Ik heb gemaakt een variabele = 0; dat de lus wordt gecontroleerd bij elke iteratie. Indien = 1, het programma heeft voldaan uitgangsvoorwaarde en de lus zal beëindigen en het programma zal sluiten.

SDL_Event evenement creëert een soort van een stapel van verschillende evenementen die zijn gesorteerd op de volgorde van vóórkomen. Bij elke nieuwe iteratie, de status van de toepassing zal worden bijgewerkt en in elke iteratie van de lus, de gebruiker kan toetsen, klik op knoppen of Beweeg de muis enz.

SDL_PollEvent (& gebeurtenis); zal bevolken gebeurtenis met de verschillende gebeurtenissen die zich in elke iteratie.

dat wil zeggen, in elke iteratie van de while lus, de variabele evenement zal worden opnieuw gevuld met gebeurtenisgegevens over en weer.

door het plaatsen van SDL_PollEvent (& gebeurtenis); in een tijdje lus

terwijl (SDL_PollEvent (& gebeurtenis))

{

}

We kunnen gebeurtenissen uit de stack van de gebeurtenis in de gebeurtenis variabele evalueren totdat er zijn geen meer evenementen in de gebeurtenis variabele.

in het geneste while lus, controleren wij voor SDL_QUIT gebeurtenis die eigenlijk ons het Rode Kruis knoop op de bovenkant van de toepassing vertelt is ingedrukt en de gebruiker is nu om de toepassing te sluiten.

De allerlaatste functie is SDL_GL_SwapWindow(screen).

Nu wordt alles naar het scherm in OpenGL gerenderd opgeslagen in een geheugengebied genaamd de framebuffer. Wanneer het scherm met een nieuw image bij elk frame te vernieuwen, zijn de inhoud van het frame buffers gewist en gevuld met de nieuwe graphics. praktisch dit proces kost tijd en als we onze applicatie lopen deze manier zouden we zien een heleboel flikkering als het tekenen van de nieuwe afbeelding duurt in de framebuffer.

Maar met het concept van het wisselen van het geheugen, kunnen we voorkomen dat dit effect. Wij definiëren twee geheugengebieden, de voorste buffer en de rug buffer, het scherm wijst naar de voorste buffer en de afbeelding in de voorste buffer wordt weergegeven. De volgende afbeelding worden getrokken is in de rug buffer geladen, terwijl het scherm de inhoud van de voorste buffer, toont zodat in plaats van het kopiëren van de inhoud van de achterkant van de buffer aan de voorste buffer, het scherm wijst aan de achterkant buffer in plaats daarvan het volgende frame wordt getekend als een direct, en de voorste buffer is gevuld met het volgende frame en het scherm wordt gewijzigd, weer, enzovoort. Kortom, we definiëren naar geheugenlocaties en laden gegevens in hen in tandem d.w.z. de afbeelding moet worden weergegeven en de volgende afbeelding worden weergegeven en de aanwijzer scherm tussen de twee houden wisselen.

Gelukkig in OpenGL hoeven we te gaan die veel complexiteit en slechts één functie aanroepen om te bereiken een mooi display en voorkomen dat flikkert:

SDL_GL_SwapWindow ();

Het laatste ding om te doen is het sluiten van de toepassing en verwijdering van alle middelen die we hebben gebruikt.

Externe Links en referenties voor verder onderzoek:

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

Gerelateerde Artikelen

Maak uw eigen slijtage overal "barefoot" schoenen

Maak uw eigen slijtage overal "barefoot" schoenen

* Opmerking! De volgende afbeeldingen zijn gemaakt met behulp van Model magie om het model van het voltooide project. Sugru zou worden sterker, soepeler toepassen en ziet er veel mooier! Model magie doet niet zeer goed glad en daarom zijn er vele hob
Hoe maak je eigen plaatsvervanger Sugru

Hoe maak je eigen plaatsvervanger Sugru

ik noem het Oogoo, een goedkope silicone klei die is gemakkelijk gemaakt. Het kan worden gebruikt als een uitstekende vervanger voor Sugru. Kan het hand gegoten of gegoten in vormen. Of, het kan worden gebruikt als een siliconen gieten. Het kan worde
Maak je eigen Iron acetaat/Homemade vlek

Maak je eigen Iron acetaat/Homemade vlek

Een voordelige en eenvoudige manier om veel verschillende soorten hout kleurt.Stap 1: Een zeer kosten effectieve manier om uw eigen vlekDe meeste materialen die ik gebruikte, zijn huishoudelijke artikelen.Artikelen gekocht:1. staalwol = $1,002. azijn
Maak uw eigen (goedkope en makkelijke) Hand Planer

Maak uw eigen (goedkope en makkelijke) Hand Planer

Mij had geweest grondig de markt voor nieuwe vliegtuigen van de hand naar mijn atelier. Er zijn verschillende merken en modellen, maar ze zijn meestal dus dure gereedschappen, dus na een lange onderzoek op het internet, bedacht ik hoe te recyclen van
Maak uw eigen houten C-klem! | DIY houtbewerking Tools #2

Maak uw eigen houten C-klem! | DIY houtbewerking Tools #2

C-klemmen zijn zo duur! Zag je dat prijskaartje laatste keer dat u in de winkel was?Ik heb niet een heel groot budget voor projecten, zodat ik de meeste van mijn instrumenten maken. Thats waarom ik ben gaan om u te tonen hoe maak je een perfecte hout
Maak uw eigen bakpoeder (glutenvrij)!

Maak uw eigen bakpoeder (glutenvrij)!

Bakpoeder (发粉; 泡打粉) is een belangrijk ingrediënt in vele bakken recepten. Als je hebt uitgeput van bakpoeder, zijn er een paar eenvoudige substituten voor u.De eenvoudigste manier is: Maak uw eigen bakpoeder door gebruik te maken van 2 gemeenschappel
Maak je eigen echte zwaard!

Maak je eigen echte zwaard!

Ooit wilde fruit ninja? Nu u kunt! Maak uw eigen zwaard dat kan snijd door iets in haar pad.Dit was een leuk project en moet een paar vaardigheden in praktijk gebracht.Bekijk een video over hoe zijn gemaakt hierStap 1: Het hele punt... Pak een potloo
Maak uw eigen Tablet weven kaarten

Maak uw eigen Tablet weven kaarten

Maak uw eigen Tablet PC kaarten uit gewone speelkaarten weven!Tablet weven (ook wel kaart weven genoemd) is een oude soort weven die tabletten gebruikt voor het maken van lange smalle stroken stof die zeer sterk.  Vermoedelijk kunststof tabletten kun
Maak uw eigen klei-sculpting lus tools-herziene versie (bijgewerkte 7 Sept 09)

Maak uw eigen klei-sculpting lus tools-herziene versie (bijgewerkte 7 Sept 09)

beeldhouwen instrumenten zijn essentiële kit voor beeldhouwen in klei of olie gebaseerde kleien zoals plasteline (een hoogwaardige plasticine), wax of chavant.Meestal zijn er twee belangrijkste soorten beeldhouwen tools-de stok-achtige verscheidenhei
Maak uw eigen draaibank van andere volkeren vuilnis

Maak uw eigen draaibank van andere volkeren vuilnis

het doel van dit instructable is te maken van een hout-draaibank uit gerecycleerd en restanten van materialen en gebruik deze om enkele mooie dingen te maken.Waarom een draaibank? U kunt het gebruiken om mooie verjaardag en kerst pressies voor famili
Maak uw eigen pallet!

Maak uw eigen pallet!

Dus wil je dat crafty pallet-project die u zag op Pinterest, maar je gewoon niet hebben toegang tot alle paletten.Wat is een persoon om te doen?Maak je eigen!Volg deze eenvoudige stappen om uw eigen zelfgemaakte pallet, en u zult klaar zijn om uw eig
Maak uw eigen professionele record reinigen machine voor minder dan $80 en Bespaar tot $3000 en meer.

Maak uw eigen professionele record reinigen machine voor minder dan $80 en Bespaar tot $3000 en meer.

Excuus voor mijn Engels.Nadat ik terug naar het geluid van de goede oude vinyl vond dat ik had het probleem elke record liefhebber heeft. Hoe schoon de records correct!?Er zijn vele manieren rond op het Internet. Goedkopere manieren willen de Knosti
Hoe te: Maak uw eigen mosterd!

Hoe te: Maak uw eigen mosterd!

Mosterd thuis maken is niet zo moeilijk als je - in feite, met minder dan een half uur werkelijke hoeveelheid werk denkt, kunt u mosterd!Het slechtste deel is het wachten - u kan niet de mosterd eten meteen, en het is het beste te wachten een paar da
Maak uw eigen avontuur spel (HTML)

Maak uw eigen avontuur spel (HTML)

dit is een zeer zeer zeer fundamentele gebruik van HTML programmering een maken uw eigen om avonturenspel te maken. Ik ben niet super knowledgable in HTML. Als u dit zien en proberen en wilt rundvlees uw spel om het te maken meer visueel geweldig vin