All pastes #436018 Raw Edit

slide

public c v1 · immutable
·published 2007-04-12 09:28 UTC
rendered paste body
void GLCameraDraw(GLvoid){	IplImage *tframe;	if (!frame)		return;	tframe = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, frame->nChannels);	if (!tframe)		return;	cvCopy(frame, tframe, 0);	if ((tframe->width > 0) && (tframe->height > 0))	{		// clear the buffers		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		glDisable(GL_DEPTH_TEST);		glDisable(GL_LIGHTING);		glEnable(GL_TEXTURE_RECTANGLE_ARB);		glMatrixMode(GL_PROJECTION);		glLoadIdentity();		gluOrtho2D(0.0, (GLdouble)tframe->width, 0.0, (GLdouble)tframe->height);					glMatrixMode(GL_MODELVIEW);		glLoadIdentity();												// Reset The Current Modelview Matrix//		glTranslatef(0.0f, 0.0f, -6.0f);								// Move		glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texture[1]);		if (tframe->nChannels == 3)			glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGB, tframe->width, tframe->height, 0, GL_BGR, GL_UNSIGNED_BYTE, tframe->imageData);		else if (tframe->nChannels == 4)			glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, tframe->width, tframe->height, 0, GL_BGRA, GL_UNSIGNED_BYTE, tframe->imageData);		glBegin(GL_QUADS);												// Draw A Quad			glTexCoord2i(0, 0);								glVertex2i(0, 0);	// Bottom Left Of The Texture and Quad			glTexCoord2i(tframe->width, 0);					glVertex2i(tframe->width, 0);	// Bottom Right Of The Texture and Quad			glTexCoord2i(tframe->width, tframe->height);	glVertex2i(tframe->width, tframe->height);	// Top Right Of The Texture and Quad			glTexCoord2i(0, tframe->height);				glVertex2i(0, tframe->height);	// Top Left Of The Texture and Quad		glEnd();														// Done Drawing The Compass	}	glDisable(GL_TEXTURE_RECTANGLE_ARB);}