API GLUT Completa

1. glutInit El comando glutInit inicializa la librería de GLUT y negocia una sesión con el sistema de ventana. También procesa opciones de la línea de comando. Se utiliza de la siguiente manera: void glutInit(int *argcp, char **argv) Donde argcp es un apuntador a la variable sin modificar argc. Como regreso de esta función el valor al que apunta argcp es actualizado. El parámetro argv es para la variable sin modificar de main argv. Como el parámetro anterior, actualiza el valor de argv. 2. glutInitWindowPosition y glutInitWindowSize Estas funciones fijan los parámetros para la posición inicial y el tamaño de la ventana que se crea. Se utilizan de la siguiente manera: void glutInitWindowSize(int width, int height); void glutInitWindo wPosition(int x, int y); Donde width es el ancho de la ventana y height la altura en píxeles. X y Y responden a las coordenadas de la ventana cuando se crea. 3. glutInitDisplayMode Esta función fija el modo despliegue inicial. Este modo es para la creac ión de ventanas de alto nivel, subventanas y capas para determinar el display de OpenGL para la ventana que se va a crear. Se utiliza de la siguiente manera: void glutInitDisplayMode(unsigned int mode); Donde mode es la opción de máscara de bit deseada ( la descripción de éstas se pueden encontrar en la fuente de referencia) Las máscaras son: GLUT_RGBA GLUT_RGB GLUT_INDEX GLUT_SINGLE GLUT_DOUBLE GLUT_ACCUM GLUT_ALPHA GLUT_DEPTH GLUT_STENCIL GLUT_MULTISAMPLE GLUT_STEREO GLUT_LUMINANCE 4. glutMainLoop Entra al loop de proceso de eventos. Esta rutina debe ser llamada al menos una vez en un programa de GLUT. Una vez llamada, esta rutina nunca va a retornar, sólo va a llamar todas las callbacks o llamadas de retorno que se hayan registrado. Se utiliza: void glutMainLoop(void); 5. glutCreateWindow Crea una ventana de alto nivel. Se utiliza de la siguiente manera: int glutCreateWindow(char *name);

En este p aso el contenido del buffer trasero se considera cono undefined o indefinido. Específicamente. El estado de despliegue o display de una ventana es most rada por la ventana inicialmente. int height). Las solicitudes hechas por glutPositionWindow no son procesadas inmediatamente. El estado de despliegue o display de la subventana es mostrada inicialmente. 8. glutGetWindow regresa el valor de 0. int y). glutGetWindow regresa el identificador de la ventana actual. Donde se tiene que especificar el nombre de la ventana a la cual se le quiera agregar la subventana (parámetro win). Para el caso de ventanas de alto nivel. Los comandos subsecuentes de OpenGL pueden ser ordenados inmediatamente después de llamar a la función. la X y la Y son offsets de píxel de la ventana padre. int height). SI la ventana a destruir es la actual. glutSetWindow y glutGetWindow glutSetWindow fija la ventana act ual. 6. esto se realiza mediane la función gl utUseLayer. Solicita un cambio en la posición de la ventana actual. Los parámetros X y Y responden a la ubicación de la subventana dentro de la ventana original. glutDestroyWindow void glutDestroyWindow(int win). glutSetWindow no modifica la capa en uso para la ventana. pero no son ejecutados hasta que el intercambio de buffers se complete. Se utilizan void glutSetWindow(int win). int x. Se utiliza como: int glutCreateSubWindow(int win. Esto quiere decir que no se puede renderizar efectivamente a esta ventana hasta que se haya entrado al ciclo. 12. Antes de retornar. Para ventanas de alto nivel los parámetros de X y Y son offsets de píxeles del origen de la pantalla. . glutPositionWindow void glutPositionWindow(int x. Cualquier subventana de la ventana destruida son tambien destruidas. glutSwapBuffers void glutSwapBuffers(void). Es similar a la utilización de la función glutCreateWindow. en vez de ser realizado inmediatamente después de llamar a la función glutSwapBuffers. glutPostRedisplay void glutPostRedisplay(void). Donde win es el identificador de la ventana. esta función es considerada sólo como una petición para posicionar la ventana. Marca el plano normal de la ventana actual según se necesite ser re desplegado. hace que el contenido del buffer trasero de la capa en uso se convierta en contenido del buffer frontal. Si no existen ventanas o la ventana actual fue destruida. int width. glutGetWindow regresa el valor de 0. 7. glutReshapeWindow void glutReshapeWindow(int width. La actualización usualmente se realiza durante el re -trazado vertical del monitor. pero el estado de despliegue no actúa hasta que se entra al ciclo generado por la función glutMainLoop. Destruye también e l contexto asociado por OpenGL. int y. son ejecutadas después de regresar al loop de evento principal. int glutGetWindow(void). Realiza un intercambio de buffer en la capa en uso para la ventana actual.El nombre de la ventana es dado por la variable name. Para subventanas. el mapa de colores lógico y las capas y estados relacionados. En la próxima iteración a través de glutMainLoop se llamará la llamada de retorno o callback para re desplegar el plano normal de la ventan a 10. pero el estado de despliegue no actúa hasta que se entra al ciclo generado por la función glutMainLoop. Widht y Heigth especifican respectivamente el ancho y alto de esta subventana. El sistema de ventanas es libre de aplicar sus propias políticas para la colocación de ventanas de alto nivel. 9. esta función realiza un glFlush. 11. glutCreateSubWindow Crea una sub ventana a partir de los parámetros que obtiene. la intención es que estas ventanas puedan ser re -posicionadas de acuerdo a los parámetros de glutPositionWindow. Destruye a la ventana determinada por el parámetro win.

void glutSetIconTitle(char *name). glutHideWindow. El efecto de hacer un push y pop en las ventanas no se realiza inmediatamente. 14. La idea es hacer la ventana tan larga como sea posible y deshabilitar cualquier decoración o borde de ventana añadidos al sistema de ve ntanas. glutFullScreen void glutFullScreen(void). glutIconifyWindow void glutShowWindow(void). Subsecuentemente. void glutHideWindow(void). GLUT_CURSOR_DESTROY Cráneo y huesos encrusijados. void glutIconifyWindow(vo id). El largo y ancho de la ventana no se garantiza que sean los mismos que los de la pantalla. cursor Nombre de la imagen del cursor a cambiar. El efecto de hacer pop y push en ventanas de alto nivel es a consideración de la política del sistema de ventanas para apilar las mismas. estas instrucciones solicitan un reemplazo de la petición anteriormente guardada para esa ventana. glutSetIconTitle void glutSetWindowTitle(char *name). glutIconifyWindow minimiza la ventana actual. 15. glutShowWindow muestra la ventana actual. Realiza una petición de cambio de tamaño en la ventana actual. Al igual que las dos instruccio nes anteriores. glutSetWindowTitle. GLUT_CURSOR_INFO Señalador de mano. Los parámetros width y height son dados en píxeles y deben ser valores positivo s. Esta función está definida sólo para ventanas de alto nivel. Al igual que la función anterior. Solicita que la ventana actual se haga de tamaño de la pantalla completa. En vez de eso. 13. void glutPushWindow(void). name: deberá conformarse por una cadena de caracteres ASCII. glutSetCursor void glutSetCursor(int cursor). pero esa es la intención de hacer la ventana de tamaño completo. glutSetWindowTitle pone la barra de título en la ventana glutSetIconTitle pone la barra de título en la ventana minimizada 17. las solicitudes no son procesadas inmediatamente y para ventanas de alto nivel se considera como una petición de modificar la ventana.Donde width es el ancho nuevo de la ventana y height la nueva altura. GLUT_CURSOR_HELP Marca de pregunta. GLUT_CURSOR_WAIT Reloj. GLUT_CURSOR_CYCLE Flecha que está rotando en un círculo. glutPopWindow y glutPushWindow void glutPopWindow(void). 16. glutHideWindow oculta la ventana actual. no se procesa inmediatamente. GLUT_CURSOR_TEXT . glutShowWindow. Estos comandos funcionan para los dos niveles de ventanas. GLUT_CURSOR_LEFT_ARROW Flecha que señala encima y a la izquierda. GLUT_CURSOR_SPRAY Lata de aerosol. se salva la ejecución hasta regresar al ciclo de evento de GLUT. principales y subventanas. El concepto de ventana completa varía de sistema dependiendo del sistema de ventana. GLUT_CURSOR_RIGHT_ARROW Flecha que señala encima y a la derecha.

glutLayerGet(GLUT_OVERLAY_POSSIBLE): puede ser llamado para determinar si un recubrimiento es posible en la ventana actual con el mo do inicial de despliegue actual. GLUT_CURSOR_UP_DOWN Puntero bidireccional arriba y abajo. GLUT_CURSOR_LEFT_SIDE Flecha que apunta a un lado izquierdo. glutUseLayer: cambia la capa en uso por ventana para la ventana actual. GLUT_CURSOR_BOTTOM_LEFT_CORNER Flecha que apunta a la esquina inferior derecha. GLUT_CURSOR_NONE Cursor invisible. GLUT_CURSOR_INHERIT Uso del cursor padre. GLUT_CURSOR_TOP_LEFT_CORNER Flecha que apunta a la esquina superior izquierda. glutRemoveOverlay . sin embargo una ventana sin recubrimiento puede todavía llamar a glutUseLayer(GLUT_NORMAL). GLUT_CURSOR_BOTTOM_SIDE Flecha que apunta a un lado inferior. layer Cualquier GLUT_NORMAL o GLUT_OVERLAY. glutSetCursor cambia la imagen del cursor de la ventana actual. 20. seleccionando cualquier plano normal o recubrimiento. GLUT_CURSOR_BOTTOM_RIGHT_CORNER Flecha que apunta a la esquina inferior izquierda. Si glutEstablishOverlay es llamado cuando un recubrimiento ya existe. glutEstablishOverlay Uso: void glutEstablishOverlay(void). glutUseLayer void glutUseLayer(GLenum layer). ya que GLUT terminará el programa. Los comandos OpenGL para vent anas están dirigidos a la actual capa en uso. 18. El modo de despliegue solicitado para el recubrimiento es determinado por el modo inicial de despliegue. GLUT_CURSOR_FULL_CROSSHAIR Cursor de pantalla completa del cortador. GLUT_CURSOR_RIGHT_SIDE Flecha que apunta a un lado derecho. selecciona el plano normal o el recubrimiento respectivamente. Descripción: glutEstablishOverlay: establece un recubrimiento (si es posible) para la ventana actual. el recubrimiento existente es removido primero. GLUT_CURSOR_CROSSHAIR Cortador. No intente establecer un recubrimiento cuando no es posible. 19. GLUT_CURSOR_TOP_RIGHT_CORNER Flecha que apunta a la esquina superior derecha.Cursor para apuntar a la insercion de texto. y entonces un nuevo recubrimiento es establecido. GLUT_CURSOR_LEFT_RIGHT Puntero bidireccional izquierda y derecha GLUT_CURSOR_TOP_SIDE Flecha que upunta a un lado superior. Para saber la capa en uso en un ventana puede llamar a glutLayerGet(GLUT_LAYER_IN_USE). El recubrimiento debe sólo ser especificado si es que existe.

Llamadas múltiples con glutPostOverlayRedisplay antes de dar oportunidad al siguiente despliegue del callback(o la oportunidad al despliegue del callback con el recubrimiento si es que se registra alguno) se genera olamente un único re-despliegue. Es típico. El valor pasado al callback es determinado por el valor de la se lección de la entrada del menú. Es seguro llamar a glutRemoveOverlay incluso si no hay un recubrimiento establecido actualmente. Diferente al daño reportado por sistema de la ventana. glutPostOverlayRedisplay void glutPostOverlayRedisplay(void). int glutGetMenu(void). El rango asignación a los identificadores inicia en uno. glutSetMenu. Si el programa intenta reestablecer el recubrimiento mas tarde. La siguiente iteración a través de glutMainLoop. El efecto de mostrar u ocultar un recubrimiento tiene lugar inmediatamente. func La función callback para el menú es llamada cuando una entrada del menú se selecciona. Implícitamente. void glutHideOverlay(void). a tal grado ocultando el recubrimiento). Note que glutShowOverlay no mostrará realmente el recubrimiento a menos de que la ventana también sea mostrada (e incluso una ventana mostrada podrá ser ocultada por otras ventanas. el recubrimiento de la ventana desplegará el callback (o simplemente el despliegue d el callback si no hay un recubrimiento registrado en el despliegue del callback) será llamad a re -desplegar el plano del recubrimiento de la ventana. glutShowOverlay. Una notificación de daños de un recubrimiento para una ventana se trabaja con glutPostOverlayRedisplay sobre la ventana dañada. glutRemoveOverlay remueve el recubrimiento (si es que existe). . glutShowOverlay muestra el recubrimiento de la ventana actual. Implícitamente. no hará nada en ese caso. Lógicamente. El rango identificador de menú es independiente de el rango identificador de ventana. más rápido y hacienda uso de menos recursos del sistema utilizar estas rutinas para controlar el estado despliegue de un recubrimiento a quitar y reestablecer el recubrimiento. la capa en uso de la ventana cambia al plano norma inmediatamente un vez que haya sido eliminado el recubrimiento. glutCreateMenu int glutCreateMenu(void (*func)(int value)). glutHideOverlay oculta el recubrimiento. el menú actual será implícitamente fijado a el menú con la entrada seleccionada antes el callback es hecho. el menú actual es fijado a es menú creado nuevamente. glutHideOverlay void glutShowOverlay(void). Este identificador de menú puede ser usado llamando a glutSetMenu. menu El identificador del menú para hacer el menú actual. glutPostOverlayRedisplay podrá ser llamado dentro despliegue del callback o recubrimiento de la ventana y así rema rcar esa ventana para su re-despliegue. 23. es típicamente mas rápido y hacienda uso de menos recursos utilizar glutHideOverlay and glutShowOverlay que simplemente cambia el estado de despliegue del recubrimiento. 21. 24. 22. glutPostOverlayRedisplay no fijará el verdadero estado de daño del recubrimiento (retornado por glutLayerGet(GLUT_OVERLAY_DAMAGED)). Cuando el menú callback es llamado porque una entrada es seleccionada para el menú. glutCreateMenu crea un nuevo menú pop-up y retorna un único identificador entro pequeño. glutGetMenu void glutSetMenu(int menu). Marca el recubrimiento de la ventana actual como necesitando ser re -desplegado.void glutRemoveOverlay(void).

int menu). . entry necesita estar entre 1 y glutGet(GLUT_MENU_NUM_ITEMS) inclusive. glutChangeToMenuEntry void glutChangeToMenuEntry(int entry. name Cadena de caracteres ASCII a desplegar en la entrada del menu. value Valor a devolver a la función callback del menú si la entrada del menú es seleccionada. Si el sub-menu activador es incorporado. El elemento del menú a cambiar no tiene que ser ya una entrada del menú. 28. 25. glutAddSubMenu void glutAddSubMenu(char *name.glutSetMenu fija el menú actual . Si el argumento menú fuera el del menú actual. glutDestroyMenu void glutDestroyMenu(int menu). Si no existen menús o el menú anterior fue eliminado. glutAddMenuEntry void glutAddMenuEntry(char *name. el callback del menú será llamado pasando value como parámetro de callback. int value). entry Índice de los artículos de menú en el menú actual (1 es el nivel más alto en un articulo de menú). El parámetro entry determina cual artículo del menú debe ser cambiado. char *name. glutGetMenu devuelva cero. Si la entrada de menú es seleccionada por el usuario. menu Identificador de el menú del que se va a derivar este sub -menú. La cadena name sera desplegada para el sub-menu activador agregado nuevamente. glutGetMenu devuelve el identificador del menú actual. name Cadena de caracteres ASCII a desplegar en la entrada del menú. int menu). glutChangeToSubMenu void glutChangeToSubMenu(int entry. 29. entry Índice de los artículos de menú en el menú actual (1 es el nivel más alto en un articulo de menú). con uno siendo el de más alto nivel. 27. 26. La cadena name se desplegará para la entrada agregada nuevamente. el sub-menú será numerado por el argumento menu y será colocado en cascada. permitiendo así que los objetos del sub -menú sean seleccionados. glutAddSubMenu agrega un sub-menu activador en el fondo del menu actual. int value). menu El identificador del menú a destruir. glutDestroyMenu destruye el menú especificado por el argumento menú. value Valor a devolver a la funci ón callback del menú si la entrada del menú es seleccionada. name Cadena de caracteres ASCII a desplegar en la entrada del menú. glutAddMenuEntry agrega una entrada de menú en la ultima parte del menú actual. char *name. name Cadena de caracteres ASCII a desplegar en el objeto menu del cual se deriva el sub -menu. glutChangeToMenuEntry cambia la entrada de menú especificada en el menú actual. el menú actual se convierte en inválido y glutGetMenu devolverá cero. La cadena name será desplegada para la entrada de menú cambiada nuevamente. El valor value será devuelto al callback del menú si esta entrada del menú es seleccionada.

El parámetro menú es el identificador por nombre del sub -menú colocado en cascada nuevamente. glutDisplayFunc dispone la función overlay display callback para la ventana actual. func La nueva función de display glutDisplayFunc dispone la función de display para la ventana actual. La cadena name será desplegada para el sub -menú activador cambiado nuevamente.value Valor a devolver a la función callback del menú si la entrada del menú es seleccionada. Note que el menú esta adjuntado al botón mediante un identificador y no mediante una referencia. void glutDetachMenu(int botón). el menú nombrado saldrá cuando el usuario presione el botón especificado. entry necesita estar entre 1 y g lutGet(GLUT_MENU_NUM_ITEMS) incluso. La función overlay display callback es funconalmente la misma que display callback excepto que la función ov erlay display callback es usada para refrescar el overlay de la ventana. entry necesita estar entre 1 y glutGet(GLUT_MENU_NUM_ITEMS) incluso. 34. glutOverlayDisplayFunc void glutOverlayDisplayFunc(void (*func)(void)). glutRemoveMenuItem elimina el elemento de la entrada del menú sin importar que sea una entrada de menu o un activador de sub-menú. La funció n display callback es llamada sin ningún parámetro. glutDetachMenu quita el botón adjuntado del mouse a la ventana activa. El valor botón debe ser uno de los siguientes: GLUT_LEFT_BUTTON. El parámetro entry determina cual elemento del menú debe ser cambiado. and GLUT_RIGHT_BUTTON. con el identificador del menú activo. entry Índice de los artículos de menú en el menú actual (1 es el nivel más alto en un articulo de menú). glutAttachMenu adjunta un boton del mouse a la ventana actual. 30. El estado de refresco para la ventana puede ser o explicitito llamando la función glutPostRedisplay o implícito como resultado de un reporte de daños de ventana. botón El botón a adjuntar o quitar el menú. glutDetachMenu void glutAttachMenu(int botón). Cuando GLUT determina que el plano normal para la ventana necesita ser refrescada. 33. . int alto)). GLUT determina cuando la función overlay display callback deberá ser activada. GLUT_MIDDLE_BUTTON. func La nueva función overlay display callback. glutReshapeFunc void glutReshapeFunc(void (*func)(int largo. Al adjuntar un menú identificador hacia un botón. 31. con un elemente estando en el nivel mas alto. Los elementos del menú debajo del elemento del menú eliminado son renumerados. la ventana actual será dispuesta a la ventana que necesita ser refrescada y (si ninguna función de overlay display callback es registrada) la capa en uso es colocada en el plano normal. 32. basándose en el estado de refresco de la ventana. El elemento del menú a cambiar no tiene ya que ser un sub -menú activador. basándose en el estado de refresco de la ventana. glutChangeToSubMenu cambia el elemento del menú especificado en el menú actual dentro de un sub -menú activador. glutRemoveMenuItem void glutRemoveMenuItem(int entry). llamado por el sistema de ventanas. Toda la región del plano normal deberá ser refrescada en respuesta a la llamada GLUT determina cuando la función display callback deberá ser activada. Antes de la llamada. llamado por el sistema de ventanas. el displ ay callback de la ventana será llamado. glutDisplayFunc void glutDisplayFunc(void (*func)(void)). glutAttachMenu. El estado de refresco para la ventana puede ser o expl icitito llamando la función glutPostOverlayRedisplay o implícito como resultado de un reporte de daños de ventana.

or GLUT_RIGHT_BUTTON. 39. La nueva función de teclado glutKeyboardFunc dispone la función de telado para la ventan actual. GLUT considera a una ventana visible si cualquier píxel de la ventana es visible o cualquier píxel de cualquier ventada descendiente es visible en la pantalla. dependiendo si el puntero del mouse se h a ido o a entrado a la ventana. El parámetro estado puede ser GLUT_NOT_VISIBLE o GLUT_VISIBLE dependiendo en la la visibilidad actual de la ventana. La función de movimiento pasivo es llamada cuando el mouse se mueve dentro de la ventana mientras que no hay botones presionados. func La nueva función de entrada glutEntryFunc dispone la función de entrada/salida del mouse para la ventana actual. El estado de teclas modificadoras como Shift no pueden ser determinadas directamente. Cuando el usuario teclea en la ventana. int y)). glutMotionFunc. y todos los caracteres ASCII creados en la ventana serán ignorados. su único efecto será al regresar un dato ASCII los parámetros x y y indica n la posición de mouse en coordenadas relativas dentro de la ventana cuando la tecla fue presionada. La función de movimiento es accionada cuando mouse se mueve dentro de la ventana mientras uno o mas botones son presionados. int x. int y)). int estado. Esta función es llamada cuando la visibilidad en una ventana ha cambiado. glutKeyboardFunc void glutKeyboardFunc(void (*func)(unsigned char tecla. glutSpecialFunc void glutSpecialFunc(void (*func)(int tecla. glutEntryFunc void glutEntryFunc(void (*func)(int estado)). 40. GLUT_VISIBLE no distingue entre una ventana totalmente visible a una parcialmente visible. int y)). 37. Cuando un usuario presiona y suelta un botón del mouse dentro de la ventana. int y)).func La nueva función redimensionamiento glutReshapeFunc dispone la función de redimensionamiento para la ventana actual. solo podra utilizar el parámetro GLUT_LEFT_BUTTON. glutMouseFunc void glutMouseFunc(void (*func)(int botón. El parámetro estado es GLUT_UP o GLUT_DOWN indicando que fue generado debido al presionar o soltar el botón respectivamente. func. Algunos sistemas no generaran correctas llamadas a funciones de entrada y salida del mouse. 38. no será posible generar el estado GLUT_MID DLE_BUTTON. cada tecla presionada genera un carácter ASCI I el cual generará un una función de teclado. Esta función es activada . glutVisibilityFunc void glutVisibilityFunc(void (*func)(int estado)). 35. los parámetros x y y indican la posición de mouse en coordenadas relativas dentro de la ventana cuando el botón del mouse fue presionado. glutPassiveMotionFunc void glutMotionFunc(void (*func)(int x. GLUT_MIDDLE_BUTTON. Los parámetros x y y indican la posición del mouse en la ventana en coordenadas relativas. Para sistemas con mouse de solo 2 botones. func La nueva función de entrada glutSpecialFunc dispone la función para teclas especiales dentro de la ventana actual. int x. El parámetro estado es uno de los siguientes: GLUT_LEFT o GLUT_ENTERED . Cuando una nueva ventana es creada. El largo y la altura son parámetros de la función y especifican el tamaño de la nueva ventana en píxeles. cada presionada y cada soltada generan una función del mouse. después de que la venta es creada o en cualquier momento que un overlay para la ventana es establecido. func La nueva función de movimiento o movimiento pasivo glutMotionFunc and glutPassiveMotionFunc dispone la función de movimiento o movimiento pasivo dentro de la ventana activa. void glutPassiveMotionFunc(void (*func)(int x. fun. El parámetro tecla es el carácter ASCII generado. func La nueva función de visibilidad glutVisibilityFunc dispone la función de visibilidad dentro de la ventana actual. int x. La función de redimensionamiento es activada cuando una ventana es redimensionada. 36. no hay ninguna función de teclado asignada. Esta también es llamada inmediatamente antes de la primera función display ca llback dela ventana. Y para los sistemas con un solo botón de mouse. int y)). El parámetro botón es uno de los siguientes GLUT_LEFT_BUTTON. La nueva función del mouse glutMouseFunc dispone la función del mouse para la ventana actual. GLUT_NOT_VISIB LE significa que ninguna parte de la ventana es visible.

Los parámetros x. Nota: el Spaceball es un dispositivo de entrada con 6 grados de libertad 42. los parámetros son normalizados para estar dent ro del rango de ²1800 a 1800. suprimir y borrar generan un código ASCII . int z)). . Esta Función es llamada cuando el foco de entrada del Spaceball (normalmente cuando el mouse esta dentro de la ventana) y el usuario genera una rotación en el spaceball. func La nueva entrada para la función glutSpaceballRotateFunc dispone la función de rotación para el Spaceball dentro de la ventana actual. func La nueva entrada para la función glutSpaceballMotionFunc dispone la función dentro de la ventana actual para el Spaceball. El parámetro tecla es una constante GLUT_KEY_* para la tecla especial presion ada. Los parámetros se normalizan para estar dentro del rango de -1000 a 1000. Y y Z respectivamente. GLUT_KEY_LEFT Tecla de dirección izquierda GLUT_KEY_UP Tecla de dirección arriba GLUT_KEY_RIGHT Tecla de dirección derecha GLUT_KEY_DOWN Tecla de dirección abajo GLUT_KEY_PAGE_UP Tacla de avance de página. Los parámetros x y y indican la posición de mouse en coordenadas relativas dentro de la ventana cuando la tecla fue presionada. Esta función es activada cuando la ventana tiene un foco de entrada del Spaceball (normalmente cuando el mouse esta dentro de la ventana) y el usuario genera una traslación del Spaceball. y y z indican la traslación en los ejes X. y y z indican la rotación dentro de los ejes X. Las teclas especiales son: GLUT_KEY_F1 Tecla F1 GLUT_KEY_F2 Tecla F2 GLUT_KEY_F3 Tecla F3 GLUT_KEY_F4 Tecla F4 GLUT_KEY_F5 Tecla F5 GLUT_KEY_F6 Tecla F6 GLUT_KEY_F7 Tecla F7 GLUT_KEY_F8 Tecla F8 GLUT_KEY_F9 Tecla F9 GLUT_KEY_F10 Tecla F10 GLUT_KEY_F11 Tecla F11 GLUT_KEY_F12 Tecla F12. glutSpaceballMotionFunc void glutSpaceballMotionFunc(void (*func)(int x. glutSpaceballRotateFunc void glutSpaceballRotateFunc(void (*func)(int x. int z)). int y. por lo tanto no son teclas especiales 41. Y y Z. GLUT_KEY_PAGE_DOWN Tacla de retroceso de página GLUT_KEY_HOME Tecla de inicio GLUT_KEY_END Tecla de fin GLUT_KEY_INSERT Tecla de imsertar Note que las teclas de escape. Los parámetros x.cuando las teclas de funciones o teclas de dirección son presionadas en el teclado. int y.

El estado será GLUT_UP o GLUT_DOWN. El parámetro botón será el númer o del botón (empezando en uno). int y)). Func se refiere a la función callback a ejecutarse. respectivamente. int x. El número de marcados de la caja de botón y marcado disponible puede ser determinado con glutDeviceGet (GLUT_NUM_DIALS). El callback de botón de caja de marcado y botón para una ventana es llamado cuando la ventana tiene una entrada de caja de marcado y botón (normalmente. El número de botones disponibles puede ser determinado con glutDeviceGet(GLUT_NUM_SPACEBALL_BUTTO NS). El callback para la moción de tableta para una ventana se ejecuta cuando la ventana tiene u n enfoque de entrada por tableta (cuando el Mouse está dentro de la ventana) y el usuario genera la moción de tableta. lo cual indica si el callback se debió a una presión o a una falta de tal. 47. func La nueva entrada para la función glutSpaceballButtonFunc dispone la función para los botones del Spaceball. 46. El número de botón de marcado y botón puede ser dterminado con glutDeviceGet (GLUT_NUM_BUTTON_BOX_BUTTONS). int state)). 48. int value)). int estado)). 45. Func se refiere a la función callback a ejecutarse. mas continúan acumulando grados (hasta que haya un desbordamiento de int dial value). int x. Los parámetros de callback se norma lizan en el rango de 0 a 2000 inclusivos. glutMenuStatusFunc void glutMenuStatusFunc(void (*func)(int status. glutButtonBoxFunc coloca el callback de botón de caja de marcado y botón para la ventana actual. El valor mide la rotación absoluta en grados. int state. Func se refiere a la función callback a ejecutarse. indicando si el callback ocurre debido a una liberación o a una presión. Nota: el Spaceball es un dispositivo de entrada con 6 grados de libertad 44. El callback de botón de tableta es llamado cuando la ventana tiene un enfoque de entrada de tableta y el usuario genera entradas por presión de botón de tableta. cuando el Mouse se encuentra dentro de la ventana) y el usuario genera entradas de presión de botón de caja de marcado y botón. El callback de la caja de marcado de botón y marcado para una ventana generalmente se efectúa cuando la ventana tiene una caja de marcado y botón con una entrada enfocada (normalmente. glutMenuStatusFunc coloca el callback del estado del menú global para que un programa GLUT pueda determinar . El parámetro de marcado será el del número marcado (empezando por uno). Los parámetros callback de x y y indican la posición absoluta del ´puckµ de la tableta en la tableta. cuando el Mouse se encuentra dentro de la vent ana) y el usuario genera cambios de caja de marcado de marcado y botón. El estado es GLUT_UP o GLUT_DOWN indicando si el botón esta siendo liberado o presionado respectivamente.Nota: el Spaceball es un dispositivo de entrada con 6 grados de libertad 43. glutSpaceballButtonFunc void glutSpaceballButtonFunc(void (*func)(int botón. glutTabletMotionFunc coloca el callback de moción de tableta para la ventana actual. glutTabletMotionFunc void glutTabletMotionFunc(void (*func)(int x. El número disponible de botones de tabletas puede ser determinado con glutDeviceGet (GLUT_NUM_TABLET_BUTTONS). glutDialsFunc coloca el callback de la caja de marcado de botón y marcado para la ventana actual. int y)). respectivamente. void glutMenuStateFunc(void (*func)(int status)). Los valores de marcado no giran con cada rotación completa. El parámetro de botón será el número de botón (comenzando con uno). Esta función es llamada cuando el foco de entrada del Spaceball (normalmente cuando el mouse esta dentro de la ventana) y el usuario presiona algún botón del Spaceball. glutTabletButtonFunc void glutTabletButtonFunc(void (*func)(int button. Los parámetros de callback x y y indican las coordenadas relativas de la ventana cuando el botón de tableta es cambiado. glutButtonBoxFunc void glutButtonBoxFunc(void (*func)(int button. int y)). glutDialsFunc void glutDialsFunc(void (*func)(int dial. Func se refiere a la función callback a ejecutarse. El estado es GLUT_UP o GLUT_DOWN. El parámetro de botón será el número de botón (comenzando con uno) . glutTabletButtonFunc coloca el callback de botón de tabl eta para la ventana actual.

green y blue (rojo. Callbacks múltiples de tiempo al mismo tiempo o en dif erentes tiempos pueden ser registradas simultáneamente. 51. value) glutTimerFunc registra la func de callback de tiempo para que sea ejecutada en al menos msecs milisegundos. verde o azul para una entrada de mapa de colores de índice de colores dada para el color de mapa lógico de la ventana.0 y 1. La rutina de callback no tiene parámetros. glutMenuStateFunc es una función simplificada de la anterior: esta no recibe parámetros de coordenad as x y y. GLfloat red. glutGetColor obtiene los components rojo. Para índices de color válidos. el callback de inactividad se llama continuamente cuando no haya eventos recibidos. Si el mapa de color de la capa en uso fue copiado por una referencia. menos de cero o mayor o igual al valor devuelto por glutGet (GLUT_WINDOW_COLORMAP_SIZE). La ventana actual y el menú actual no serán cambiados antes del callback de inactivi dad. glutGetColor devolverá . .0. Los parámetros x y y indican la localización en coordenadas de ventana de la presión de botón que causó que el menú estuviera en uso o la localización donde el menú fue liberado (puede ser fuera de la ventana). Nombra la función callb ack. verde y azul. Hay un solo callback de estado de menú para GLUT. 52. glutIdleFunc void glutIdleFunc(void (*func)(void)).0). Los menús de unmapping o de cascada de un menú pop-up inicial no generan llamadas al estado de menú. esto es si el índice de color es transparente o está fuera del rango de los índices de color válidos. cuyos rangos varían desde 0. El parámetro fun. Coloca el mapa de colores del índice de color de cell para el mapa de color lógico para la ventana actual par a la capa en uso con el color especificado por red. La capa en uso para la ventana actual debe ser una ventana de índice de color. el valor regresado es un valor de punto flotante entre 0. glutSetColor void glutSetColor(int cell. 49. 50. glutGetColor GLfloat glutGetColor(int cell. una llamada a glutSetColor forzará la duplicación del mapa de colores. void (*func)(int value). int compone nt). 53. Cell debe ser cero o más grande y menos del número total de entradas de mapa de color para la ventana. será llamado con el valor de GLUT_MENU_IN_USE por su parámetro de valor cuando los menús pop-up estén siendo usados por el usuario. glutCopyColormap copia (lentamente de ser posible. Cell debe ser cero o mayor y m enor del número de total de entradas de mapa de color para la ventana.0 si el índice de color especificado es un índice transparente d e overlay.0 hasta 1.cuando un menú está en uso o no. para promover el compartir archivos) el mapa de color lógico de una ventana especificada a la capa en uso de la ventana. La copia será del plano normal al plano normal. La ventana actual debe ser una ventana de índice de color. ya que eso forzará una copia actual del mapa de colores si fue copiada previamente por referencia. Una vez que el mapa de color haya sido copiado. GLfloat green. y el callback entonces será llamado con el valor GLUT_MENU_NOT_IN_USE por su parámetro de estado cuando los menús pop-up no estén siendo usados. glutCopyColormap solame nte debería ser empleada cuando ambas la ventana actual y la ventana win sean ventanas de índice de color. glutTimerFunc void glutTimerFunc(unsigned int msecs. Los programas con ventanas o menús múltiples deben colocar explícitamente la ventana y/o el menú actual y no deberán confiar en su configuración actual. Cuando el callback del estado de un menú es registrado. o del overlay al overlay (nunca a través de capas distintas). Otros callbacks continúan operando (excepto por los callbacks de movimiento del Mouse) cuando los menús pop -up están en uso para que los callback de estado de menú permitan a un programa suspender su animación u otras tareas cuando los menús están en uso. glutIdleFunc coloca el callback de inactividad global para ser func para que así un programa GLUT pueda realizar procesos continuos de animación cuando el los eventos de sistema de ventan a no estén siendo recibidos. El parámetro value para el callback de tiempo será el valor del parámetro value para glutTimerFunc. GLfloat blue). evite colocar cells en el mapa de color con glutSetColor. glutCopyColormap void glutCopyColormap(int win). Si se habilita.

glutGet int glutGet(GLenum state). 59. Esta intercepción es independiente al uso de glutGetModifiers. glutGetModifiers devuelve el estado de las teclas modificadoras al momento en el cual un evento de entrada para el teclado. en cuyo caso. Otros nombres de estado de GLUT devuelven un estado global. glutGetModifiers int glutGetModifiers(void). glutLayerGet int glutLayerGet(GLenum info). glutExtensionSupported ayuda a determinar fácilmente si una extensión de OpenGL dada está soportada o no. pero glutExtensionSupported reconoce el parking correcto de la cadena devuelta. El parámetro info determina qué tipo de información de capa hay que devolver. glutExtensionSupported int glutExtensionSupported(char *extension).54. glutBitmapCharacter Renderiza un caracter usando OpenGL. Debe haber una ventana actual válida para llamar a glutExtensionSupported. glutGet obtiene un estado simple de GLUT representado por enteros. El pedir la información de dispositivo para una información de dispositivo GLUT inválida devuelve un uno negativo. Permite mostrar en la pantalla un caracter con algún tipo de fuente que se le asigne. 57. El parámetro info determina qué tipo de información de dispositivo hay que devolver. glutDeviceGet obtiene información de dispositivos GLUT repr esentados por enteros. Esta rutina sólo puede ser llamada mientras se maneja el teclado. glutExtensionSupported devuelve un no-cero si la extensión es soportada y cero si no lo es. especial o el Mouse. El parámetro extensión da nombre al query de extensión. Al sistema de ventana le es permitido interceptar teclas modificadoras definidas para el sistema de ventana o botones de Mouse. El pedir un estado para un nombre de estado inválido de GLUT devuelve un uno negativo. especial o Mouse se genera. Las Fuentes disponibles para glutBitmapCharacter son: GLUT_BITMAP_8_BY_13 -misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1 . void glutBitmapCharacter(void *font. font Tipo de Fuente para el caracter que se va a utilizar character Caracter a renderizar. glutDeviceGet int glutDeviceGet(GLenum info). int character). glutExtensionSupported sólo devuelve información de extensiones soportadas por OpenGLO. Las extensiones soportadas tamb ien pueden ser determinadas con glGetString (GL_EXTENSIONS). Esto significa que los sistemas de ventana dependientes de extensiones (por ejemplo. El estado de capacidad de la ventana se regresa para la capa en uso. 56. 55. extensiones GLX) no se reporta n en glutExtensionSupported. El parámetro state determina qué tipo de estado regresará. glutLayerGet obtiene la información de la capa GLUT para la ventana actual representada por enteros. 58. Nombres de estado de GLUT comenzando por GLUT_WINDOW_ devuelven el estado para la ventana actual. no se generará ningún callback GLUT. Nombres de estado de GLUT comenzando por GLUT_MENU_ devuelven el estado para el menú actual.

int character) font Fuente a utilizar character Caracter a devolver el ancho. int glutStrokeWidth(GLUTstrokeFont font. 63.76 unidades de ancho. font Fuente a utilizar character Caracter a renderizar. Cada caracter es de 104. glutSolidSphere. . glutBitmapWidth Devuelve el valor del ancho de un caracter en píxeles. Mientras que el ancho de los caracteres en una fuente puede variar. glutWireSphere Renderiza una esfera sólida o de tipo de conexiones de líneas respectivamente. 62. 61.GLUT_BITMAP_9_BY_15 -misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1 GLUT_BITMAP_TIMES_ROMAN_10 -adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1 GLUT_BITMAP_TIMES_ROMAN_24 -adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1 GLUT_BITMAP_HELVETICA_10 -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1 GLUT_BITMAP_HELVETICA_12 -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1 GLUT_BITMAP_HELVETICA_18 -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1 La representación de un carácter que no existe no tiene nin gún efecto. las características de la altura máxima de una fuente en particular son fijas. int character) font Tipo de Fuente para el caracter que se va a utilizar caracter Caracter a devolver el ancho. El máximo alto de los caracteres en esta fuente es de 119.05 unidades. int character). int glutBitmapWidth(GLUTbitmapFont font.05 unidades. El máximo alto de los caracteres en esta fuente es de 119. glutStrokeWidth Devuelve el valor de el ancho de un Stroke caract er en píxeles. glutStrokeCharacter Renderiza un Stroke Caracter(Caracter de tipo a mano alzada) void glutStrokeCharacter(void *font. Mientras que el ancho de los caracteres en una fuente puede variar. GLUT_STROKE_MONO_ROMAN Roman Simple monoespaciada. las características de la altura máxima de una fuente en particular son fijas. Las Fuentes disponibles para esta función son las siguientes: GLUT_STROKE_ROMAN Roman Simple Espaciada Proporcionadamente. 60.

67. GLint slices. La imagen es centrada en el origen de las coordenadas del modelo con un radio de 3^1/3. glutSolidTorus. void glutWireOctahedron(void). 68. GLdouble outerRadius. La imagen es centrada en el origen de las coordenadas del modelo con un radio de 1. GLdouble height. radius Radio de la esfera slices Numero de subdivisions alrededor del eje Z(similar a líneas de longitud) stacks Numero de subdivisions a lo largo del eje Z(similar a líneas de latitud) 64. GLint stacks). GLint stacks). GLint rings). void glutSolidTorus(GLdouble innerRadius. GLint nsides. GLint nsides. GLdouble outerRa dius. void glutSolidDodecahedron(void). void glutWireDodecahedron(void). glutWireDodecahedron Renderiza un dodecaedro(doce lados) sólido (glutSolidDodecahedron) o de tipo de conexiones de líneas (glutWireDodecahedron) respectivamente. GLint rings). glutSolidOctahedron. GLint slices. glutWireTorus Renderiza una dona sólida (glutSolidTorus) o de tipo de conexiones de líneas (glutWireTorus) respectivamente. base El radio de la base del cono height El alto del cono slices Número de subdivisiones alrededor del eje Z stacks Número de subdivisions a lo largo del eje Z 66. glutSolidCube. void glutWireSphere(GLdouble radius. glutSolidCone. GLint stacks). GLint s lices.void glutSolidSphere(GLdouble radius. glutWireOctahedron Renderiza un octaedro(ocho lados) sólido ( glutSolidOctahedron) o de t ipo de conexiones de líneas (glutWireDoOctahedron) respectivamente. void glutSolidCone(GLdouble base. void glutWireCone(GLdouble base. GLint slices. glutSolidDodecahedron. void glutSolidOctahedron(void). GLint stacks). GLdouble height. void glutWireCube(GLdouble size). . El cubo es centrado el origen de los coordenadas del modelado con los lados del tamaño de la longitud. outerRadius Radio Externo de la dona insides Numero de lados por cada sección radial rings Número de divisiones radiales para la dona La dona es centrada el origen de los coordenadas del modelado cuyos ejes son alineados con el eje Z. innerRadius Radio interno de la dona. 65. void glutSolidCube(GLdouble size). void glutWireTorus(GLdouble innerRadius. glutWireCube Renderiza un cubo sólido (glutSolidCube) o de tipo de conexiones de líneas (glutWireCube) respectivamente. glutWireCone Renderiza un cono sólido (glutSolidCone) o de tipo de conexiones de líneas(glutWireCone) respectivamente.

void glutSolidTeapot(GLdouble size). glutWireTetrahe dron Renderiza un tetraedro(cuatro lados) sólido ( glutSolidTetrahedron) o de tipo de conexiones de líneas (glutWireTetrahedron) respectivamente. glutSolidIcosahedron. La imagen es centrada en el origen de las coordenadas del modelo con un radio de 1.69. void glutSolidIcosahedro n(void).9 glutSolidTeapot. void glutSolidTetrahedron(void). 70. glutWireIcosahedron Renderiza un icosaedro(veinte lados) sólido ( glutSolidIcosahedron) o de tipo de conexiones de líneas (glutWireDoIcosahedron) respectivamente. void glutWireTeapot(GLdouble size). 11. La imagen es centrada en el origen de las coo rdenadas del modelo con un radio de 3^1/3. glutWireTeapot Renderiza una figura en forma de tetera ya sea sólida (glutSolidTeapot) o de tipo de conexion es de líneas(glutWireTeapot). . La tetera se genera con los evaluadores de OpenGL. glutSolidTetrahedron. void glutWireIcosahedron(void). void glutWireTetrahedron(void). size Tamaño relativo de la Tetera Tanto las coordenadas de la superficie normal como la textura son generadas.

Sign up to vote on this title
UsefulNot useful