Vous êtes sur la page 1sur 7

IEC361196 Graficacin

Prctica #0: Instalacion de CodeBlocks e inclusin


de la librera OpenGL a un proyecto
Fecha de entrega:
OBJ!I"O#:
Conocer la manera en que se incluye la librera !"enG#
"ara su uso en un "royecto de Code$loc%s y utili&ar algunas
funciones de la librera "ara la creacin de 'entanas(
I$!%O&'CCI($:
En esta "r)ctica se le "ro"orciona el cdigo mnimo
necesario "ara im"lementar a"licaciones en !"enG#( Este
cdigo es el encargado de crear una 'entana* darle una
"osicin dentro de la "antalla* asignarle dimensiones*
establecer un color de fondo y "ro"orcionarle un ttulo(

+ntes de em"e&ar instale el "rograma Code$loc%s "ara
,indo-s* el instalador se encuentra en la "lataforma .+C/
!nline 0tambi1n lo "uede obtener de la siguiente ")gina
,eb: htt":22---(codebloc%s(org23( 4i lo descarga
directamente de Internet* aseg5rese de descargar la 'ersin
que contiene el "aquete 6inG, 0usualmente con el nombre:
codeblocks-XX.XXmingw-setup.exe* donde 77(77 es el n5mero
de 'ersin3( Instale las o"ciones "redeterminadas(
)'$CIO$# & L* LIB%%+* OP$GL * '!ILI,*%:
o void glClear (GLbitfield mscara)
Funcin (8 #im"ia los buffers es"ecificados
asign)ndoles los 'alores actuales( El argumento
mscara "uede tener los siguientes 'alores:
Bu--er $o.bre
$uffer de color G#9C!#!:9$.FFE:9$I;
$uffer de fondo G#9<E=;>9$.FFE:9$I;
$uffer de acumulacin G#9+CC.69$.FFE:9$I;
$uffer de "atrn G#94;E?CI#9$.FFE:9$I;
GLbitfield(8 Cam"o de 3@ bits(
EAem"lo:
glClear(GL_COLOR_BUFFER_BIT); //limpia el buffer de color
o void gl!lus" (void)
Funcin (8 El comando glFlu!() causa la eAecucin
de cualquier comando en es"era(
EAem"lo:
glFlu!();
o void glClearColor(GLclampf ro#o$ GLclampf verde$
GLclampf a%ul$ GLclampf alfa)
Funcin (8 Establece el color actual que 'a a
a"arecer en el fondo de la 'entana en modo :G$(
GLclampf(8 es un ti"o de datos real* "or lo tanto
estos argumentos toman 'alores en el inter'alo
BC* 1D(
ro#o(8 la com"onente roAa del 'alor de relleno(
verde(8 la com"onente 'erde del 'alor de relleno(
a%ul/0 la com"onente a&ul del 'alor de relleno(
alfa/0 la com"onente alfa del 'alor de relleno(
EAem"lo:
glClearColor("#"$"#"$"#"$"#"); //e e%ablece el color &egro
//como fo&do de la 'e&%a&a#
o void glut&nit('argc$ argv)
Funcin (8 Esta funcin es la que iniciali&a la
librera G#.;* y negocia con el sistema de
'entanas "ara abrir una( :ecibe dos "ar)metros*
que son los "ar)metros que son recibidos "or el
main desde la lnea de comando(
EAem"lo:
glClearColor((argc$ arg');
o void glut&nit(indow)osition (int x$ int *)
Funcin (8 Con esta funcin fiAamos la "osicin
inicial de las 'entanas que se creen(
EAem"lo:
glu%I&i%)i&do*+oi%io&(,""$ ,""); //Coloca la e-ui&a
//uperior i.-uierda de la 'e&%a&a e&
la //coorde&ada(,""$,"")
o void glut&nit(indow+i%e (int anc"o$ int alto)
Funcin (8 Esta rutina sir'e "ara indicar el
tamaEo inicial de las 'entanas que se creen(
ancho (8 anchura de la 'entana en "iFeles(
alto (8 altura de la 'entana en "iFeles(
EAem"lo:
glu%I&i%)i&do*/i.e(0"$ 1"); //2ig&a a la 'e&%a&a u& %ama3o
//de 0" de a&c!o 4 1" de al%o#
o int glutCreate(indow (c"ar ,nombre)
Funcin (8 Esta funcin crea una 'entana
"rinci"al( Cuando se crea una 'entana* la
'entana acti'a "asa a ser esta nue'a 'entana(
,nombre(8 cadena de caracteres con el nombre de
la 'entana(
EAem"lo:
glu%Crea%e)i&do*(5T6%ulo7); //Crea u&a 'e&%a&a 4 aig&a
//5T6%ulo7 e& la barra de
//%6%ulo de la 'e&%a&a#
o void glut-ispla*!unc (void (,funci.n) (void))
Funcin (8 :egistra la funcin que res"onde al
e'ento de redibuAado de la 'entana acti'a( G#.;
no "ro"orciona una funcin de res"uesta "or
defecto "ara el redibuAado* "or lo que es
obligatorio escribir una funcin de este ti"o
"ara cada 'entana creada( 4i se crea una
'entana y no se registra la funcin de
res"uesta al redibuAado* se "roduce un error(
(,funci.n)(8 funcin de res"uesta al e'ento(
EAem"lo:
glu%8ipla4Fu&c(dipla4_cb); //la fu&ci9&
glu%8ipla4Fu&c //ma&da llamar a la
fu&ci9& dipla4_cb //cada 'e. -ue la
dime&io&e de la //'e&%a&a o&
modificada#
o void glut/ainLoop(void)
Funcin (8 Esta funcin im"lementa un ciclo
infinito que se encarga de consultar la cola de
e'entos y de res"onder a cada uno de ellos
eAecutando una funcin( #a funcin que se
eAecuta cuando se "roduce un e'ento debe ser
escrita "or el "rogramador y registrada como
una funcin de res"uesta 0callbac:3( <e esta
manera* G#.; sabe a qu1 funcin llamar "ara
res"onder a un determinado e'ento( Esta rutina
debe llamarse una 'e& en el "rograma( =uesto
que im"lementa un ciclo infinito 0realmente el
ciclo termina cuando se "roduce un e'ento de
cerrar a"licacin3* la funcin no termina
nunca( =or ello es necesario registrar
"re'iamente las funciones callbac: y que*
adem)s* la llamada a esta funcin sea la 5ltima
de main(
EAem"lo:
glu%;ai&Loop();

&#*%%OLLO:
=ara incluir la librera !"enG# en su a"licacin
deber) seguir los siguientes "asos:
1( +dquirir los archi'os: glu%<=#dll$ libglu%<=#a$ glu%#! de
la "lataforma .+C/ !nline* los cuales son es"ecialmente
"ara Code$loc%s 0no "ara Gisual 4tudio3(
@( Co"iar los archi'os en los siguientes directorios:
glu%<=#dll
C:H,indo-sH4ystem3@H 0si es un sistema de 3@ bits3
C:H,indo-sH4ys,!,6IH 0si es un sistema de 6I bits3
libglu%<=#a
C:H=rogram FilesHCode$loc%sH6inG,HlibH
glu%#!
C>?+rogram File?CodeBloc:?;i&G)?i&clude?GL
3( +brir el "rograma Code$loc%s 0si "regunta cual
com"ilador usar* seleccione JG?. GCC Com"ilerK3
I( Crear un "royecto( .na forma de crear un "royecto es
siguiendo la siguiente secuencia de "asos:
Para crear un proyecto nue1o:
File(
?e-(
=roAect(
<e la 'entana seleccione JEm"ty "roAectK y de
clic% en JGoK
?eFt(
Introdu&ca el nombre del "royecto en J=roAect
titleK y el folder donde desea guardar el "royecto
en JFolder to create =roAect inK deAando los dos
5ltimos cam"os con su 'alor default(
?eFt(
+seg5rese de que en JCom"ilerK este seleccionado
JG?. GCC Com"ilerK
Finish(
Para a2re2ar un /cpp nue1o al proyecto:
File(
?e-
Em"ty file( 0seleccione JLesK si "regunta3
4eleccione la ruta de su "royecto y guarde el
(c"" con el nombre deseado(
6arque las o"ciones J<ebugK y J:eleaseK cuando le
sea "reguntado(
Para a2re2ar las libreras de OpenGL al proyecto:
<e clic% derecho en su "royecto que esta en el
)rbol del "anel de la i&quierda 0<ebaAo de
,or%s"ace3 y seleccione J$uild !"tionsMK
Galla a la "estaEa J#in%er 4ettingsK* en la "arte
J#in% #ibrariesK de clic% en J+ddK y agregue una "or
una las siguientes libreras sin comillas:
Jo"engl3@K* Jglu3@K y Jglut3@K(
=or ultimo de clic% en !N(
O( Escriba el siguiente cdigo( Com"lelo* crralo y
aseg5rese de que se eAecuta sin errores(
Pinclude Q-indo-s(hR
Pinclude QG#2glut(hR
'oid dis"lay9cb 0'oid3 S
glClear 0G#9C!#!:9$.FFE:9$I;3T
glFlush03T
U
'oid iniciali&acion 0'oid3 S
glClearColor 01(C* 1(C* 1(C* C(C3T
U
int main 0int argc* charVV arg'3 S
glutInit 0Wargc* arg'3T
glutInit<is"lay6ode 0G#.;94I?G#E X G#.;9:G$3T
glutInit,indo-4i&e 06CC* ICC3T
glutCreate,indo- 0YCodigo minimoY3T
glut<is"layFunc 0dis"lay9cb3T
iniciali&acion03T
glut6ain#oo"03T
return CT
U
6( EF"erimente con el uso de las funciones: glClearColor()*
glu%I&i%)i&do*+oi%io&()* glu%I&i%)i&do*/i.e() y
glu%Crea%e)i&do*()(

Vous aimerez peut-être aussi