Débutants guident pour OpenGL : construire votre propre logiciel de CAO (5 / 14 étapes)

Étape 5: La Build : faire une fenêtre

La base code vous aurez besoin de compiler et d’exécuter est comme ci-dessous. Maintenant, il peut être beaucoup plus courte, mais je tiens à introduire quelques concepts importants dans cette étape et compléter cette instructable dans un laps de temps.

Nous allons regarder de plus près lors de l’initialisation

SDL_Init initialise la sdl pour le mode pour lequel vous souhaitez utiliser. Plus précisément, il y a 8 modes dans SDL incluent Audio, CD-ROM, fichier e/s, manipulation du Joystick, Threading, gestion d’événements, minuteries, vidéo (celui que nous utilisons). Seulement le SDL_INIT_VIDEOest maintenant notre besoin dès maintenant.

Les trois lignes de code il suffit de créer une fenêtre pour nous d’utiliser. l’écran est une variable de type

SDL_Window *; d’écran

Cette variable, nous stockons la valeur de retour de SDL_CreateWindow() qui renvoie une fenêtre si réussie ou une valeur NULL si infructueuse.

en SDL_CreateWindow(),

1) le titre de la fenêtre, le détail le premier argument

2) le deuxième et le troisième argument donner l’emplacement par défaut de la fenêtre sur l’écran au démarrage

3) le quatrième et cinquième argument spécifie la taille de l’écran, j’ai créé deux variables windowHeight = 1020 ; et largeur de la fenêtre = 610 ; pour stocker ces informations.

4) sixième argument est pour un indicateur, ce qui peut indiquer des choses comme si la fenêtre peut être redimensionnée ou si elle doit être minimisée au démarrage etc. vous trouverez plus de drapeaux dans les liens au bas de cette étape.

La fonction suivante SDL_CreateContext() est unique pour chaque fenêtre. SDL2 introduit un nouveau système par lequel vous pouvez créer plusieurs fenêtres. mais pour chaque fenêtre, vous devez créer un contexte qui fondamentalement stocke l’ensemble de l’état associé à cette instance d’OpenGL.

Comme je le disais avant, OpenGL est une machine d’État. Notre application peut avoir plusieurs fenêtres, donc openGL doit savoir quelle fenêtre pour restituer les graphiques, nous utilisons

SDL_GL_MakeCurrent (, )

de dire à quelle fenêtre pour restituer à openGL. OpenGL continuera à rendre d’une fenêtre donnée set jusqu'à ce que vous réutilisez actuel SDL_GL_Make pour spécifier une autre fenêtre.

Ensuite, nous allons jeter un oeil à la boucle while()

Maintenant, c’est la boucle principale dans laquelle nous sera rendu notre écran et recherchant les événements. Cette boucle s’exécutera jusqu'à ce que la condition de sortie est vraie, que c'est-à-dire nous quitter l’application en appuyant sur le bouton croix sur le dessus de la fenêtre.

J’ai créé une variable done = 0; qui vérifie à chaque itération de la boucle. Si done = 1, le programme a démontré à condition de sortie et la boucle seront terminera, et le programme se ferme.

SDL_Event event crée sorte d’une pile de différents événements triés par la priorité d’occurrence. À chaque nouvelle itération, l’état de l’application sera actualisé, et dans chaque itération de la boucle, l’utilisateur peut appuyer sur les touches, cliquez sur les boutons ou déplacez la souris etc..

SDL_PollEvent (& event) ; remplira l' événement avec les divers événements qui se produisent à chaque itération.

autrement dit, à chaque itération du while boucle, la variable d’événement NomDocument est générée avec les données d’événement maintes et maintes fois.

SDL_PollEvent (& event); en plaçant un certain temps boucle

tandis que (SDL_PollEvent (& event))

{

}

Nous pouvons évaluer les événements de la pile de l’événement dans la variable d’événement jusqu'à ce qu’il n’y a pas plus d’évenements dans la variable d’événement.

dans l’imbriqués tout en boucle, nous vérifions pour événements SDL_QUIT qui fondamentalement nous indique le bouton croix rouge sur le dessus de l’application a été enfoncée et l’utilisateur est maintenant quitter l’application.

La toute dernière fonction est SDL_GL_SwapWindow(screen).

Maintenant, tout a rendu à l’écran en OpenGL est stocké dans une zone de mémoire appelée le frame buffer. lors de l’actualisation de l’écran avec une nouvelle image à chaque image, le contenu de tampons de trame est effacé et rempli avec les nouveaux graphismes. pratiquement, ce processus prend du temps et si nous courons notre application cette façon nous verrions beaucoup de scintillement comme la nouvelle image de dessin prend du temps dans le frame buffer.

Mais avec le concept d’échange de mémoire, nous pouvons empêcher cet effet. Nous définissons deux zones de mémoire, le tampon d’affichage et de la mémoire tampon d’arrière-plan, l’écran pointe vers le tampon d’affichage et l’image dans le tampon d’affichage s’affiche. L’image suivante à tirer est chargé dans la mémoire tampon d’arrière-plan tandis que l’écran affiche le contenu du tampon, donc au lieu de copier le contenu du dossier de la mémoire tampon pour le tampon d’affichage, l’écran pointe vers la mémoire tampon d’arrière-plan au lieu de cela l’image suivante est appelée instantanément et puis le tampon est rempli avec l’image suivante et l’écran est modifiée à nouveau et ainsi de suite. En substance, nous définissons aux emplacements de mémoire et charger les données dans leur en tandem, c'est-à-dire l’image à afficher et l’image suivante pour afficher et garder swapping le pointeur écran entre les deux.

Heureusement en OpenGL, nous n’avons pas à aller dans cette grande complexité et il suffit d’appeler une fonction pour obtenir un affichage agréable et éviter le scintillement :

SDL_GL_SwapWindow ();

La dernière chose à faire est fermer l’application et disposer de toutes les ressources que nous avons utilisé.

Externe des liens et des références pour la recherche :

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

Articles Liés

Construire votre propre jeu de société

Construire votre propre jeu de société

Salut tout le monde,Mon nom est Frank, et je suis un étudiant à l'Université Lehigh. Je travaille actuellement sur un projet d'entreprise essayant d'obtenir des utilisateurs d'appareils intelligents afin de mieux utiliser leur temps passé sur les écr
Construire votre propre Robot Butler!!!  -Tutorial, Photos et vidéo

Construire votre propre Robot Butler!!! -Tutorial, Photos et vidéo

EDIT : plus d'informations sur mes projets Découvrez mon nJe fais aussi consultant pour des effets spéciaux projets/produits robotique et mécatronique. Visitez mon site Web - narobo.com pour plus de détails.Vous avez toujours voulu un robot butler qu
Construire votre propre Single ou double Tap Kegerator pour Home Brew fûts

Construire votre propre Single ou double Tap Kegerator pour Home Brew fûts

ces instructions combinées avec les informations d'achat est tout vous avez besoin pour construire votre propre mini kegerator convenable pour loger un ou deux 5 gallons keg(s) mini, bouteille de dioxyde de carbone et tous les tuyaux.Chaque page d'in
Débuter avec Marteaugraphy : construire votre propre LightHammer !

Débuter avec Marteaugraphy : construire votre propre LightHammer !

Pour l'année écoulée, j'ai travaillé sur l'élaboration d'un processus d'expérimentation photographique, j'appelle marteaugraphy. Tout simplement marteaugraphy consiste à l'aide d'un instrument spécial, un LightHammer, d'exposer des images sur papier
Construire votre propre Scooter handicapé de Rehab de mobilité pour moins de 500 $

Construire votre propre Scooter handicapé de Rehab de mobilité pour moins de 500 $

Je peux vous montrer comment faire pour convertir un Razor E300 Scooter, je vous suggère d'acheter chez Amazon.com devrait être d'environ 250 $, dans votre propre scooter handicapé Rehab. La trottinette E300 que vous recevrez n'a qu'une seule vitesse
IoT industrielle - comment construire votre propre pagode extérieure pour la météo, qualité de l’Air et autres capteurs

IoT industrielle - comment construire votre propre pagode extérieure pour la météo, qualité de l’Air et autres capteurs

** Mise à jour : L'article ci-dessous provient de notre héritage app Android ! Valarm est IoT industrielle. Nous aiderons à vous, vos équipes et votre entreprise avec des applications industrielles de l'ITO utilisant Valarm outils Cloud.Si vous voule
Comment construire votre propre maison de Wendy pour presque rien

Comment construire votre propre maison de Wendy pour presque rien

Il s'agit d'une Wendy House j'ai construit pour mes enfants de vieilles palettes et quelques autres morceaux recyclés que je pouvais poser mes mains sur. Tout cela coûte autour de £100 à faire. Si quelqu'un est intéressé à la façon dont je l'ai const
Construire votre propre Interface électronique Sampler pour Ableton

Construire votre propre Interface électronique Sampler pour Ableton

Salut. Je suis actuellement un étudiant de deuxième année de technologie musicale. L'objectif de ce projet était de concevoir un nouvel instrument d'une certaine forme.En fin de compte, c'est une interface électronique et peut être remappé à des fins
Comment construire votre propre cage pour hamster.

Comment construire votre propre cage pour hamster.

je pense que les cages pour animaux sont trop petites pour satisfaire leur besoin d'espace. Bien sûr, je veux le meilleur pour mon petit animal de compagnie... alors j'ai décidé de faire un endroit où elle peut avoir du plaisir et être aussi sûr.Dans
Construire votre propre Arduino alimenté par Satellite pour seulement 2000 USD

Construire votre propre Arduino alimenté par Satellite pour seulement 2000 USD

Mise à jour : trouver la version finale de ce satellite à https://www.indiegogo.com/projects/sateloscope/x/7917212Merci de contribuer vos fonds pour mon projet, s'il vous plaît... ***Étape 1: Introduction Mise à jour : trouver la version finale de ce
Construire votre propre bureau, pour moins de 20 ans (30$)

Construire votre propre bureau, pour moins de 20 ans (30$)

il s'agit de mon guide sur la façon de construire votre propre bureau élégant, spacieux et attrayant pour moins de 20 livres !Certes, je travaille dans un magasin de bricolage mais au plus il m'aurait coûté £22 sans escompte.En tout cas, suivez les é
Pour construire votre propre trousse de secours (base) personnalisé

Pour construire votre propre trousse de secours (base) personnalisé

de construire votre propre trousse de secours personnalisée :Vous pouvez commencer avec et métal vide ou kit de plastique ou un sac de secourisme nice ou pack de premiers soins, alors vous pouvez continuer à ajouter des éléments individuels jusqu'à c
Construire votre propre moto électrique

Construire votre propre moto électrique

vue d'ensembleLe projet fini est un 1981 Kawasaki KZ440, converti en électrique. Il est alimenté par quatre Optima Yellow Top scellé batteries au plomb (AGM), qui animent un moteur Briggs & Stratton Etek. La vitesse du moteur est contrôlée par un All
Accueil culture hydroponique - un manuel sur la façon de construire votre propre système de culture hydroponique

Accueil culture hydroponique - un manuel sur la façon de construire votre propre système de culture hydroponique

IntroductionCauses et les effets de la surpopulationLa surpopulation ne devrait pas être prise à la légère. Il a des effets terribles, un d'eux étant un manque de nourriture. Notre monde actuellement surpeuplée est causée par la révolution industriel