Practica 5
#include <stdlib.h>
#include <stdio.h>
#include </usr/include/GL/glut.h>
char str[]="00:00:00";
int seg=0,seg2=0,min=0,min2=0, segg=0,segg2=0;
int ancho=383,alto=216;
unsigned char * datos;//es un apuntador hacia la variable datos
void leerImagen(){
FILE *imagen;
imagen=fopen("/home/artur/Escritorio/boy.raw","rb");
datos=(unsigned char*)malloc(ancho*alto*3);//malloc sirve para partar memoria se aparta ancho por alto por 3
if(imagen==NULL){
printf("Error: No imagen\n");
}else{printf("OK: Imagen cargada correctamente\n");}
fread(datos,ancho*alto*3,1,imagen);
fclose(imagen);
}
void usarTexturas(){
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);
}
void dibujaTexto(char * mensaje)
{
while (*mensaje) {
glutStrokeCharacter(GLUT_STROKE_ROMAN,*mensaje++);
}
}
void temporizador(int value) {
switch (value) {
case 1 :
glutTimerFunc(1000,temporizador,1);
seg++;
if(seg==10){seg=0;seg2++;}
if(seg2 == 6){seg2=0;}
break;
case 2 :
glutTimerFunc(60000,temporizador,2);
min++;
if(min == 10){min=0;min2++;}
if(min2 == 6){min2=0;}
break;
case 3 :
glutTimerFunc(10,temporizador,3);
segg++;
if(segg == 10){segg=0;segg2++;}
if(segg2 == 6){segg2=0;}
break;
}
glutPostRedisplay();
}
void display(void)
{ glClear( GL_COLOR_BUFFER_BIT );
// glColor3f(1, 1, 1);
// glBegin(GL_QUADS);
// glTexCoord2f(0.0, 1.0);glVertex2f(-10,-10);
// glTexCoord2f(1.0, 1.0);glVertex2f(10,-10);
// glTexCoord2f(1.0, 0.0);glVertex2f(10,10);
//glTexCoord2f(0.0, 0.0);glVertex2f(-10,10);
//glEnd();
glPushMatrix();
glColor3f(0.7, 0.8, 0.0);
glTranslatef(-0.5,0,0);
glScalef(0.002, 0.002, 1);
sprintf(str,"%d%d:%d%d:%d%d",min2,min,seg2,seg,segg2,segg);
dibujaTexto(&str[0]);
glPopMatrix();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitWindowSize(383,216);
glutCreateWindow("Practica 5");
//gluOrtho2D(-10,10,-10,10);
glutTimerFunc(1000,temporizador,1);
glutTimerFunc(60000,temporizador,2);
glutTimerFunc(100,temporizador,3);
//leerImagen();
//usarTexturas();
//glEnable(GL_TEXTURE_2D);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
#include <stdio.h>
#include </usr/include/GL/glut.h>
char str[]="00:00:00";
int seg=0,seg2=0,min=0,min2=0, segg=0,segg2=0;
int ancho=383,alto=216;
unsigned char * datos;//es un apuntador hacia la variable datos
void leerImagen(){
FILE *imagen;
imagen=fopen("/home/artur/Escritorio/boy.raw","rb");
datos=(unsigned char*)malloc(ancho*alto*3);//malloc sirve para partar memoria se aparta ancho por alto por 3
if(imagen==NULL){
printf("Error: No imagen\n");
}else{printf("OK: Imagen cargada correctamente\n");}
fread(datos,ancho*alto*3,1,imagen);
fclose(imagen);
}
void usarTexturas(){
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);
}
void dibujaTexto(char * mensaje)
{
while (*mensaje) {
glutStrokeCharacter(GLUT_STROKE_ROMAN,*mensaje++);
}
}
void temporizador(int value) {
switch (value) {
case 1 :
glutTimerFunc(1000,temporizador,1);
seg++;
if(seg==10){seg=0;seg2++;}
if(seg2 == 6){seg2=0;}
break;
case 2 :
glutTimerFunc(60000,temporizador,2);
min++;
if(min == 10){min=0;min2++;}
if(min2 == 6){min2=0;}
break;
case 3 :
glutTimerFunc(10,temporizador,3);
segg++;
if(segg == 10){segg=0;segg2++;}
if(segg2 == 6){segg2=0;}
break;
}
glutPostRedisplay();
}
void display(void)
{ glClear( GL_COLOR_BUFFER_BIT );
// glColor3f(1, 1, 1);
// glBegin(GL_QUADS);
// glTexCoord2f(0.0, 1.0);glVertex2f(-10,-10);
// glTexCoord2f(1.0, 1.0);glVertex2f(10,-10);
// glTexCoord2f(1.0, 0.0);glVertex2f(10,10);
//glTexCoord2f(0.0, 0.0);glVertex2f(-10,10);
//glEnd();
glPushMatrix();
glColor3f(0.7, 0.8, 0.0);
glTranslatef(-0.5,0,0);
glScalef(0.002, 0.002, 1);
sprintf(str,"%d%d:%d%d:%d%d",min2,min,seg2,seg,segg2,segg);
dibujaTexto(&str[0]);
glPopMatrix();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitWindowSize(383,216);
glutCreateWindow("Practica 5");
//gluOrtho2D(-10,10,-10,10);
glutTimerFunc(1000,temporizador,1);
glutTimerFunc(60000,temporizador,2);
glutTimerFunc(100,temporizador,3);
//leerImagen();
//usarTexturas();
//glEnable(GL_TEXTURE_2D);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Comentarios
Publicar un comentario