Principiantes guían de OpenGL: construir su propio software de CAD (5 / 14 paso)

Paso 5: La construcción: fabricación de una ventana

Básico el código necesita para compilar y ejecutar es como por debajo de. Ahora, puede ser mucho más corta, pero quiero introducir algunos conceptos importantes en este paso y completar este instructable en una cantidad finita de tiempo.

Echemos un vistazo a inicialización

SDL_Init inicializa el sdl en un modo que desea utilizar. Específicamente, hay 8 modos en SDL que incluyen Audio, CD-ROM, E/S de archivos, manejo de la palanca de mando, roscar, Event Handling, temporizadores, Video (que estamos utilizando). Ahora nuestra necesidad ahora es sólo la SDL_INIT_VIDEO.

Las siguientes tres líneas de código simplemente crean una ventana para que podamos utilizar. la pantalla es una variable de tipo

SDL_Window *pantalla;

En esta variable guardamos el valor devuelto de SDL_CreateWindow() que devuelve una ventana si éxito o NULL si .

en SDL_CreateWindow(),

1) el primer argumento detalles del título de la ventana,

2) el segundo y tercer argumento dar la ubicación predeterminada de la ventana en la pantalla de inicio

3) el cuarto y quinto argumento especifica el tamaño de la pantalla, he creado dos variables windowHeight = 1020; y ancho de la ventana = 610; para almacenar esta información.

4) el sexto argumento es para una bandera, que puede especificar cosas como si la ventana puede ser redimensionada o si debe reducirse el inicio etc. usted puede encontrar más banderas en los enlaces al final de este paso.

La siguiente función SDL_CreateContext() es única para cada ventana. DS2 introdujo un nuevo sistema por el cual se pueden crear varias ventanas. pero para cada ventana, debe crear un contexto que almacena básicamente todos del estado asociado a esta instancia de OpenGL.

Como dije antes, OpenGL es una máquina de estado. Nuestra aplicación puede tener múltiples ventanas, modo openGL debe saber que ventana para renderizar los gráficos, por lo que utilizamos

SDL_GL_MakeCurrent (, )

a openGL que ventana a. OpenGL continuará representar a una ventana de sistema particular hasta que reutiliza SDL_GL_Make actual para especificar otra ventana.

A continuación, vamos a echar un vistazo en el bucle while()

Este es el bucle principal en el que estaremos representación nuestra pantalla y control para eventos. Este bucle se ejecutará hasta que la condición de salida es verdadera es decir, que salga de la aplicación pulsando el botón cruzado en la parte superior de la ventana.

He creado una variable = 0; que el bucle se compruebe en cada iteración. Si = 1, el programa ha cumplido condición de salida y el bucle terminará y se cerrará el programa.

SDL_Event evento crea de una pila de diferentes actos ordenados por la precedencia de la ocurrencia. En cada nueva iteración, se actualizará el estado de la aplicación, y en cada iteración del bucle, el usuario puede pulsar las teclas, haga clic en botones o mover el ratón, etc..

SDL_PollEvent (y evento); se poblará el evento con los distintos eventos que ocurren en cada iteración.

es decir, en cada iteración del tiempo bucle, la variable evento será ser repoblada con datos del evento y otra vez.

colocando SDL_PollEvent (y evento); en un tiempo bucle

mientras (SDL_PollEvent (y evento))

{

}

Podemos evaluar los eventos de la pila de evento en evento variable hasta que no hay más eventos en la variable evento.

en el anidado al bucle, comprobamos para evento SDL_QUIT que básicamente nos dice que el botón de la Cruz Roja en la parte superior de la aplicación ha sido presionada y el usuario ahora es dejar la aplicación.

La última función es SDL_GL_SwapWindow(screen).

Ahora todo a la pantalla en OpenGL se almacena en un área de memoria llamada el frame buffer. al refrescar la pantalla con una nueva imagen en cada fotograma, el contenido de almacenadores intermediarios de marco es borrado y poblado con los nuevos gráficos. prácticamente este proceso toma tiempo y si corremos nuestra aplicación esta manera veríamos un montón de parpadeo como la nueva imagen de plano lleva tiempo en el frame buffer.

Pero con el concepto de intercambio de memoria, podemos prevenir este efecto. Definen dos áreas de memoria, el búfer frontal y el búfer de reserva, puntos de la pantalla en el búfer frontal y se muestra la imagen en el búfer frontal. Se carga la imagen siguiente para ser dibujado en el búfer de reserva mientras la pantalla muestra el contenido del búfer frontal, así que en lugar de copiar el contenido de la parte posterior del almacenador intermediario en el búfer frontal, puntos de la pantalla en el búfer de reserva en su lugar el siguiente fotograma se dibuja al instante y el siguiente fotograma se llena el búfer frontal y la pantalla se cambia otra vez y así sucesivamente. En esencia, definimos a las localidades de memoria y carga de datos en ellos en tándem, es decir la imagen que se mostrará y la siguiente imagen para visualizar y guardar cambiar el puntero de la pantalla entre los dos.

Por suerte en OpenGL, no tenemos que ir en eso mucha complejidad y una llamada a una función para lograr una presentación agradable y evitar el parpadeo:

SDL_GL_SwapWindow ();

La última cosa a hacer es cerrar la aplicación y eliminación de todos los recursos que utilizamos.

Enlaces externos y referencias para futuras investigaciones:

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

Artículos Relacionados

Construir su propio Atlatl

Construir su propio Atlatl

El cazador acecha su presa a un campo abierto con la oportunidad perfecta para atacar. Ojos se redujo con la intención completa una muerte limpia. Lentamente pero seguramente el cazador saca una flecha de su aljaba y se prepara para el ataque. En un
Construir su propio firewall gateway

Construir su propio firewall gateway

aprender a construir su propio firewall gateway usando FreeBSD® y viejas piezas de la PC. El servidor de seguridad consistirá en el cortafuegos de PF, IDS Snort, varias aplicaciones de IPS, proxy Squid y algunas interfaces web intuitivas para la audi
Hidroponía - un manual sobre cómo construir tu propio sistema de hidroponía de inicio

Hidroponía - un manual sobre cómo construir tu propio sistema de hidroponía de inicio

IntroducciónCausas y efectos de la superpoblaciónLa superpoblación no debe ser tomada a la ligera. Tiene unos efectos terribles, uno de ellos es la escasez de alimentos. Nuestro mundo actualmente superpoblada es causada por la Revolución Industrial.
Cómo construir tu propio cajón caja tambor con lazo ajustable

Cómo construir tu propio cajón caja tambor con lazo ajustable

en este instructable mostrará usted cómo construir su propio tambor de caja de cajón. Hicimos 2 tambores de Cajon para debajo de 50$, así que alrededor de 25$ un pedazo. Yo se entrar en este instructable en el concurso de instrumentos musicales, así
Construir su propio pato llamar

Construir su propio pato llamar

llega un momento cada mans vida cuando relojes demasiado "dinastía de pato" y se siente inspirado para construir su propio llamado. No reclamar ni pretende ser un experto en patos, llamadas de pato o Pato caza. Heck, que incluso no vivo cerca de
Construir su propio ordenador portátil

Construir su propio ordenador portátil

¿por qué alguien salir y comprar una computadora de un fabricante como Dell o Gateway, cuando podría construir un ordenador más potente por menos dinero? La respuesta, no saben cómo construirla.Esto puede sonar como un proceso complicado, pero en rea
Cómo construir tus propio contenedores creciente

Cómo construir tus propio contenedores creciente

===Mi inspiración inicial fue estos contenedores crecimiento diseñado por Ray Newstead y aquí:http://earthtainer.tomatofest.com/==========El sitio anterior se debe considerar el recurso de la original y el último y la mayoría de los pasos utilizados
Cómo construir tu propio motor de Jet

Cómo construir tu propio motor de Jet

no tienes que ser Jay Leno poseer una moto jet accionado, y te mostramos cómo hacer tu propio jet enigne aquí para alimentar sus vehículos extravagantes. Se trata de un proyecto en curso, y un montón de información adicional estará disponible en nues
Construir su propio estudio insonorizada en 11 pasos

Construir su propio estudio insonorizada en 11 pasos

Gracias a los constantes avances en tecnología digital, todo el mundo puede grabar en casa, y todo el mundo puede ser propietario de un estudio. Pero mientras muchos conformarse con una configuración de dormitorio eggbox-clad (un mito que a desacredi
Construir tu propio router/fresadora CNC

Construir tu propio router/fresadora CNC

Ya en la edad de 12 años estaba soñando de hacer una máquina que podía hacer las cosas! Una máquina que me daría la oportunidad de crear productos para toda la casa. Dos años más tarde me topé ont las palabras "Computer Numerical Control" o más
Construir su propio Djembe (mesa final)

Construir su propio Djembe (mesa final)

hace mucho tiempo yo era miembro del círculo del tambor de mi high school donde tocamos los tambores africanos. Como estudiante universitario, que es una de las cosas que más echo de menos. Así que dado mi hobby de construcción de instrumentos musica
Construir su propio galpón de almacenamiento!

Construir su propio galpón de almacenamiento!

Hola Instructables!  Esta es mi participación en el concurso de Shopbot.  Este Instructable le mostrará los pasos para construir su propio galpón.   Hemos decidido que nuestro galpón sería para el almacenamiento porque queríamos salir de algunas cosa
Cómo construir su propio casco de cabeza de ratón de Deadmau5!

Cómo construir su propio casco de cabeza de ratón de Deadmau5!

Así que eres un fan de Deadmau5 enormes y han sido dolor para conseguir sus manos en una de esas cabezas Mau5 dulce - pero no se como algunos de ésos epic fail has visto algunas personas llevar... quieres un fiar cabeza que será envidiada por todos. 
Construir su propio extintor de cosas alrededor de su casa

Construir su propio extintor de cosas alrededor de su casa

cómo construir su propio extintor (Disclaimer: no tengo ninguna responsabilidad por hacerlo de manera incorrecta o daño a ti mismo)Paso 1: simple extintor de incendios Una forma cuidada para apagar un fuego con este extintor de jar de simple mantequi