SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Introducción a OpenGL
                  Informática Gráfica




¿Qué es OpenGL?
 Open Graphics Library
 Librería de funciones gráfica
   Gestión de gráficos en 3D
 Interfaz software para hardware gráfico
 Libre y multiplataforma
 Consta de unas 200 órdenes
   Especificación de objetos
   Generación de aplicaciones interactivas en 3D
¿Qué es OpenGL?
 Usos:
  70% industria del videojuego
  Reconstrucciones virtuales
  Modelos arquitectónicos
  …
 Implementaciones
  Mesa para Linux (freeware)
  Windows XX
  …




¿Qué es OpenGL?
 Competidores
  Directx 3D (Microsoft):
    ni libre ni multiplataforma
    Xbox, Xbox360
¿Cómo funciona?
 Comportamiento similar a una máquina de
 estados
   Un conjunto de variables representan el estado
   actual (color, punto de vista, propiedades
   material, …)
   El valor de las variables se cambia mediante
   instrucciones OpenGL
   Las variables tienen un valor por defecto




¿Cómo funciona?
 Caraterísticas técnicas:
   Permite construir modelos geométricos (puntos,
   líneas y polígonos) a través de un conjunto de
   primitivas
   No tiene funciones relacionadas con el manejo de
   ventanas o entradas de usuario
Sintáxis
 Conjunto de prefijos y sufijos
   Los comandos utilizan el prefijo gl
   Las constantes utilizan el prefijo GL_
   Las funciones poseen una sintaxis particular
     gl<orden>[234][sifd][v](args…)
     s- short, i- interger, f- float, d- double
     v- puntero a vector
     Ej. glVertex*()




Librerías
 OpenGL Utility Library (GLU)
   Provee ciertas características de modelado
   Es una parte estándar para cualquier implementación de
   OpenGL
 OpenGL Utility Toolkit Library (GLUT)
   Kit de desarrollo independiente del sistema de ventanas
   Funciones:
      Manejo de ventanas
      Funciones de visualización
      Ejecución del programa
      Funciones de eventos
      Gestión de procesos en segundo plano
      Funciones de primitivas
Estructura de un programa
OpenGL
 Inicialización del sistema y de las ventanas
 Dibujo de la escena
 Bucle de gestión de eventos
 Si cambia el dibujo, redibujar




Crear una ventana
 Cinco instrucciones en el siguiente orden:
   glutInit(int *argc, char **argv)
     Inicializa la GLUT
   glutInitDisplayMode(unsigned int mode)
     especifica características de funcionamiento de la
     aplicación
       Modelo de color: se usará un modelo RGB (GLUT_RGB) o
       uno basado en índices
       si se trata de modelos de buffer sencillo o doble
       (GLUT_DOUBLE)
       Si se requiere algún otro buffer como son el stencil o la
       profundidad (GLUT_DEPTH)
Crear una ventana
  glutInitWindowPosition(int x, int y)
    especifica la posición de la esquina superior izquierda
    de la ventana en la pantalla
  glutInitWindowSize(int x, int y)
    especifica el tamaño de la ventana en pixels
  glutCreateWindow (char *nombre)
    crea la ventana y devuelve un identificador
    La ventana no será visible hasta después de llamar a
    la función glutMainLoop()




Inicializando la ventana
 El sistema de coordenadas
  glOrtho (izquierda, derecha, abajo, arriba, cerca.
  lejos)
  Crea una matriz de proyección de coordenadas y
  la multiplica por la matriz de proyección actual
  Ejemplo: glOrtho(-1,1,-1,1,-1,1)
  Cerca y lejos será -1 y 1
Inicializando la ventana
 Limpiar la ventana
   glClearColor (r, g, b, a)
     red, green, blue, canal alpha (0)
     glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
   glClear(GL_COLOR_BUFFER_BIT);
     Limpia el buffer de color




Especificar el color
 glColor3f(r,g,b)
   Modelo RGB
   Valores entre 0 y 1
   Ejemplo: GlColor3f(1.0,0.0,1.0); // Genera el Color
   Amarillo
Área de dibujo
 Fijar un rectángulo de trabajo (view port)
 dentro del cual se representará la escena
 observada desde un punto de vista
 determinado
 glViewport (x, y, ancho, alto)
   x, y determinan esquina inferior izquierda del área
   gráfica rectangular.
   Ancho, alto determinan la anchura y altura del
   rectángulo respectivamente




Dibujar
 Puntos, líneas y polígonos se definen como construcciones
 sobre vértices
 Para especificar un vértice se utiliza el comando glVertex*()
 Para poder dibujar se necesita colocar cada vértice entre
 glBegin() y glEnd().
 A glBegin() se le pasa un argumento que determina que tipo de
 primitiva va a dibujar con los vértices dados.
    GL_POINTS: dibuja puntos
    GL_LINES: dibuja líneas
    GL_POLYGON: dibuja polígonos
    …
 Entre glBegin() y glEnd() hay restricciones de que comandos
 openGL se pueden utilizar
Dibujar
 Dibujando un polígono
   Indicar qué se va a dibujar
     glBegin(GL_POLYGON);
   Especificar los vértices
     glVertex2f(x0,y0);
     glVertex2f(x1,y1);
     glVertex2f(x2,y2);
     ....
   Indicar que se ha terminado
     glEnd();




Dibujar
 Completar el dibujo
   void glFlush(void);
     fuerza que los comandos previos de OpenGL
     empiecen a ejecutarse, sin garantizar que se
     completen en un tiempo finito.
   void glFinish(void);
     fuerza que TODOS los comandos previos de OpenGL
     se terminen de ejecutar. Este comando no retorna
     hasta que todos los efectos de los comandos previos
     son realizados completamente
Ejemplo
#include <gl/glut.h>
#include <gl/gl.h>

void main (int argc, char** argv) {
   abreVentana ();
   glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glClear (GL_COLOR_BUFFER_BIT);
   glColor3f (1.0, 1.0, 1.0);
   glBegin (GL_POLYGON);
      glVertex2f (-0.5, -0.5);
      glVertex2f (-0.5, 0.5);
      glVertex2f (0.5, 0.5);
      glVertex2f (0.5, -0.5);
   glEnd ();
   glFlush ();
}




Ejemplo
void abreVentana (int argc, char** argv) {
     glutInit(&argc, argv);
     glutInitDisplayMode(AUX_SINGLE | AUX_RGBA);
     glutInitWindowSize(ancho, alto);
     glutInitWindowPosition(x, y);
     glutCreateWindow("Primer programa");
     glutDisplayFunc(void (*func)(void));
}

Weitere ähnliche Inhalte

Was ist angesagt?

Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
makapxndx
 
Guia rapida processing
Guia rapida processingGuia rapida processing
Guia rapida processing
cordltx
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
FRESH221 C.R
 
Gotoxy
GotoxyGotoxy
Gotoxy
Gioc
 

Was ist angesagt? (20)

Renee opengl karla
Renee opengl karlaRenee opengl karla
Renee opengl karla
 
Practica 3
Practica 3Practica 3
Practica 3
 
Tutorial de matplotlib
Tutorial de matplotlibTutorial de matplotlib
Tutorial de matplotlib
 
Introduccion a awt
Introduccion a awtIntroduccion a awt
Introduccion a awt
 
Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
 
Revista digital
Revista digitalRevista digital
Revista digital
 
Plots
PlotsPlots
Plots
 
calculadora en c sharp
calculadora en c sharpcalculadora en c sharp
calculadora en c sharp
 
Conalep 1
Conalep 1Conalep 1
Conalep 1
 
Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Guia rapida processing
Guia rapida processingGuia rapida processing
Guia rapida processing
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Ejercicios de programación.
Ejercicios de programación.Ejercicios de programación.
Ejercicios de programación.
 
Ejercicios de consola en c++
Ejercicios de consola en c++Ejercicios de consola en c++
Ejercicios de consola en c++
 
Gotoxy
GotoxyGotoxy
Gotoxy
 
Pintando gráficas con Python
Pintando gráficas con PythonPintando gráficas con Python
Pintando gráficas con Python
 
GNUPlot una alternativa libre para graficar funciones
GNUPlot una alternativa libre para graficar funcionesGNUPlot una alternativa libre para graficar funciones
GNUPlot una alternativa libre para graficar funciones
 
Hp
HpHp
Hp
 
Divisores de un número (código Dev C++)
Divisores de un número (código Dev C++)Divisores de un número (código Dev C++)
Divisores de un número (código Dev C++)
 

Ähnlich wie Intro opengl

Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
Karen_Avilaa
 
Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303
Pablo Solis
 
Renderización en java
Renderización en javaRenderización en java
Renderización en java
aleja0940
 
Gu is awt_swing
Gu is awt_swingGu is awt_swing
Gu is awt_swing
LCA
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
Riki Tapia
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
Riki Tapia
 

Ähnlich wie Intro opengl (20)

Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
 
Estela y naye
Estela y nayeEstela y naye
Estela y naye
 
Mini introopengl
Mini introopenglMini introopengl
Mini introopengl
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303
 
Manual de practicas segundo parcial
Manual de practicas segundo parcialManual de practicas segundo parcial
Manual de practicas segundo parcial
 
Direct Xy Open Gl
Direct Xy Open GlDirect Xy Open Gl
Direct Xy Open Gl
 
Introduccion al OpenGL
Introduccion al OpenGLIntroduccion al OpenGL
Introduccion al OpenGL
 
Renderización en java
Renderización en javaRenderización en java
Renderización en java
 
Gu is awt_swing
Gu is awt_swingGu is awt_swing
Gu is awt_swing
 
Programa voz
Programa vozPrograma voz
Programa voz
 
Opengl
OpenglOpengl
Opengl
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
!Prograc10
!Prograc10!Prograc10
!Prograc10
 
El_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxEl_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptx
 
Programación Open GL ES en iPhone e iPod touch
Programación Open GL ES en iPhone e iPod touchProgramación Open GL ES en iPhone e iPod touch
Programación Open GL ES en iPhone e iPod touch
 
Manual open gl
Manual open glManual open gl
Manual open gl
 

Kürzlich hochgeladen

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Kürzlich hochgeladen (20)

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 

Intro opengl

  • 1. Introducción a OpenGL Informática Gráfica ¿Qué es OpenGL? Open Graphics Library Librería de funciones gráfica Gestión de gráficos en 3D Interfaz software para hardware gráfico Libre y multiplataforma Consta de unas 200 órdenes Especificación de objetos Generación de aplicaciones interactivas en 3D
  • 2. ¿Qué es OpenGL? Usos: 70% industria del videojuego Reconstrucciones virtuales Modelos arquitectónicos … Implementaciones Mesa para Linux (freeware) Windows XX … ¿Qué es OpenGL? Competidores Directx 3D (Microsoft): ni libre ni multiplataforma Xbox, Xbox360
  • 3. ¿Cómo funciona? Comportamiento similar a una máquina de estados Un conjunto de variables representan el estado actual (color, punto de vista, propiedades material, …) El valor de las variables se cambia mediante instrucciones OpenGL Las variables tienen un valor por defecto ¿Cómo funciona? Caraterísticas técnicas: Permite construir modelos geométricos (puntos, líneas y polígonos) a través de un conjunto de primitivas No tiene funciones relacionadas con el manejo de ventanas o entradas de usuario
  • 4. Sintáxis Conjunto de prefijos y sufijos Los comandos utilizan el prefijo gl Las constantes utilizan el prefijo GL_ Las funciones poseen una sintaxis particular gl<orden>[234][sifd][v](args…) s- short, i- interger, f- float, d- double v- puntero a vector Ej. glVertex*() Librerías OpenGL Utility Library (GLU) Provee ciertas características de modelado Es una parte estándar para cualquier implementación de OpenGL OpenGL Utility Toolkit Library (GLUT) Kit de desarrollo independiente del sistema de ventanas Funciones: Manejo de ventanas Funciones de visualización Ejecución del programa Funciones de eventos Gestión de procesos en segundo plano Funciones de primitivas
  • 5. Estructura de un programa OpenGL Inicialización del sistema y de las ventanas Dibujo de la escena Bucle de gestión de eventos Si cambia el dibujo, redibujar Crear una ventana Cinco instrucciones en el siguiente orden: glutInit(int *argc, char **argv) Inicializa la GLUT glutInitDisplayMode(unsigned int mode) especifica características de funcionamiento de la aplicación Modelo de color: se usará un modelo RGB (GLUT_RGB) o uno basado en índices si se trata de modelos de buffer sencillo o doble (GLUT_DOUBLE) Si se requiere algún otro buffer como son el stencil o la profundidad (GLUT_DEPTH)
  • 6. Crear una ventana glutInitWindowPosition(int x, int y) especifica la posición de la esquina superior izquierda de la ventana en la pantalla glutInitWindowSize(int x, int y) especifica el tamaño de la ventana en pixels glutCreateWindow (char *nombre) crea la ventana y devuelve un identificador La ventana no será visible hasta después de llamar a la función glutMainLoop() Inicializando la ventana El sistema de coordenadas glOrtho (izquierda, derecha, abajo, arriba, cerca. lejos) Crea una matriz de proyección de coordenadas y la multiplica por la matriz de proyección actual Ejemplo: glOrtho(-1,1,-1,1,-1,1) Cerca y lejos será -1 y 1
  • 7. Inicializando la ventana Limpiar la ventana glClearColor (r, g, b, a) red, green, blue, canal alpha (0) glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); Limpia el buffer de color Especificar el color glColor3f(r,g,b) Modelo RGB Valores entre 0 y 1 Ejemplo: GlColor3f(1.0,0.0,1.0); // Genera el Color Amarillo
  • 8. Área de dibujo Fijar un rectángulo de trabajo (view port) dentro del cual se representará la escena observada desde un punto de vista determinado glViewport (x, y, ancho, alto) x, y determinan esquina inferior izquierda del área gráfica rectangular. Ancho, alto determinan la anchura y altura del rectángulo respectivamente Dibujar Puntos, líneas y polígonos se definen como construcciones sobre vértices Para especificar un vértice se utiliza el comando glVertex*() Para poder dibujar se necesita colocar cada vértice entre glBegin() y glEnd(). A glBegin() se le pasa un argumento que determina que tipo de primitiva va a dibujar con los vértices dados. GL_POINTS: dibuja puntos GL_LINES: dibuja líneas GL_POLYGON: dibuja polígonos … Entre glBegin() y glEnd() hay restricciones de que comandos openGL se pueden utilizar
  • 9. Dibujar Dibujando un polígono Indicar qué se va a dibujar glBegin(GL_POLYGON); Especificar los vértices glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); .... Indicar que se ha terminado glEnd(); Dibujar Completar el dibujo void glFlush(void); fuerza que los comandos previos de OpenGL empiecen a ejecutarse, sin garantizar que se completen en un tiempo finito. void glFinish(void); fuerza que TODOS los comandos previos de OpenGL se terminen de ejecutar. Este comando no retorna hasta que todos los efectos de los comandos previos son realizados completamente
  • 10. Ejemplo #include <gl/glut.h> #include <gl/gl.h> void main (int argc, char** argv) { abreVentana (); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glClearColor (0.0, 0.0, 0.0, 0.0); glClear (GL_COLOR_BUFFER_BIT); glColor3f (1.0, 1.0, 1.0); glBegin (GL_POLYGON); glVertex2f (-0.5, -0.5); glVertex2f (-0.5, 0.5); glVertex2f (0.5, 0.5); glVertex2f (0.5, -0.5); glEnd (); glFlush (); } Ejemplo void abreVentana (int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(AUX_SINGLE | AUX_RGBA); glutInitWindowSize(ancho, alto); glutInitWindowPosition(x, y); glutCreateWindow("Primer programa"); glutDisplayFunc(void (*func)(void)); }