11.07.2015 Views

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

Download document (10.35 MB) - Escuela Superior de Informática ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

162 Capítulo D. Código fuente833 gboolean createAdquisitionVi<strong>de</strong>o(GtkWidget *widget){834835 GdkGLContext *glcontext;836 GdkGLDrawable *gldrawable;837838 if (img != NULL) {839 glcontext = gtk_widget_get_gl_context (widget);840 gldrawable = gtk_widget_get_gl_drawable (widget);841842843 if( !imageAdquisition) {844 imageAdquisition = cvCreateImage( cvSize(img->width,845 img->height),846 IPL_DEPTH_8U, img->nChannels );847 }848849 cvResize(img, imageAdquisition, CV_INTER_LINEAR );850 cvFlip( imageAdquisition, imageAdquisition, 0 );851852 if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)){853 g_print ("*** ERROR: Problem in dibujar\n");854 }855856 glClear( GL_COLOR_BUFFER_BIT );857 glLoadI<strong>de</strong>ntity();858 glTranslatef(0.0f, 0.0f,-1.0f);859860 GLenum format = IsBGR(imageAdquisition->channelSeq)861 ? GL_BGR_EXT : GL_RGBA;862863 if (!init) {864 glGenTextures(1, &imageID1);865 glBindTexture(GL_TEXTURE_2D, imageID1);866 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);867 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);868 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);869 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageAdquisition->width,870 imageAdquisition->height, 0,871 format, GL_UNSIGNED_BYTE, imageAdquisition->imageData);872 init= 1; // init is over873 }874 else {875 glBindTexture(GL_TEXTURE_2D, imageID1);876 glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, imageAdquisition->width,877 imageAdquisition->height, format, GL_UNSIGNED_BYTE,878 imageAdquisition->imageData);879 }880 glPushMatrix();881 glEnable(GL_TEXTURE_2D);882883 glBegin(GL_QUADS);{884 glTexCoord2f(0, 0); glVertex3f(-1, -1, 0);885 glTexCoord2f(0, 1); glVertex3f(-1, 1, 0);886 glTexCoord2f(1, 1); glVertex3f(1, 1, 0);887 glTexCoord2f(1, 0); glVertex3f(1, -1, 0);888889 }glEnd();890 glPopMatrix();891892 if (gdk_gl_drawable_is_double_buffered (gldrawable)){

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!