Exemple #1
0
void updateIGM(int debut, int fin)
{
	if(debut)
		Xe_InvalidateState(xe);

	//Dessine la scene
	XeDrawSurface2(igmBg, -1, -1, 2, 2, 1);
	//XeDrawSurface(igmBarr,-1,-1,1,1,1);//Barr en haut
	XeDrawSurface2(igmBarr, -1, 0.7, 2, .3, 1);
	//event sur la manette
	igmInput();
	switch(menuselected)
	{
		case 0:
			drawMenuIcon();
			break;

		case ITEM_RETURN_TO_MENU:
			drawReturnToMenu();
			break;
		case ITEM_DISPLAY_INFO:
			drawInformation();
			break;
		default:
			drawMenuIcon();
			break;

	}

	if(fin)
	{
		Xe_SetClearColor(xe, ~0);

		/* resolve (and clear) */
		Xe_Resolve(xe);

		/* wait for render finish */
		while (!Xe_IsVBlank(xe));
		Xe_Sync(xe);


	}
	nframe=1.0f;
}
void PerspectiveGLWidget::paintGL()
{
	sceneTransformations();
	LightManager::getInstance ()->enableLighting ();
	LightManager::getInstance ()->doLight ();
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	if(isGridDrawingEnabled)
		drawGrid();
	glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
	ModelManager::getInstance ()->draw ();

	glDisable (GL_LIGHTING);
	GLUquadricObj *sphere=NULL;
	glLineWidth (3);
	glPushMatrix ();
	glTranslatef (10, 10, 10);
	glColor3f (1.0, 1.0, 1.0);
	sphere = gluNewQuadric();
	gluSphere(sphere, 0.15, 20, 20);
	glBegin (GL_LINES);
	glVertex3f (0, 0.3, 0);
	glVertex3f (0, -0.3, 0);
	glVertex3f (0.3, 0, 0);
	glVertex3f (-0.3, 0, 0);
	glVertex3f (0, 0, 0.3);
	glVertex3f (0, 0, -0.3);
	glVertex3f (0.1, 0.1, 0.1);
	glVertex3f (-0.1, -0.1, -0.1);
	glVertex3f (0.1, 0.1, -0.1);
	glVertex3f (-0.1, -0.1, 0.1);
	glVertex3f (-0.1, 0.1, -0.1);
	glVertex3f (0.1, -0.1, 0.1);
	glVertex3f (-0.1, 0.1, 0.1);
	glVertex3f (0.1, -0.1, -0.1);
	glEnd ();
	glEnable (GL_LIGHTING);
	glLineWidth (1);
	glPopMatrix ();
	if(selectionRectangle)
	{
		glDisable (GL_LIGHTING);
		glClear(GL_DEPTH_BUFFER_BIT);//This must be exist.For drawing in same z depth.
		glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
		float finishDrawingPositionX = mapFromGlobal (QCursor::pos ()).x ();
		float finishDrawingPositionZ = mapFromGlobal (QCursor::pos ()).y ();
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		glOrtho(0.0, glWidgetWidth, glWidgetHeight, 0.0, 1.0, -1.0);
		glMatrixMode(GL_MODELVIEW);
		glLoadIdentity();
		gluLookAt (0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);
		glColor3f(1.0, 1.0, 1.0);
		glLineStipple(1, 0xF0F0);
		glBegin(GL_LINE_LOOP);
		glVertex2f(curXSelectionRectangle, curYSelectionRectangle);
		glVertex2f(finishDrawingPositionX, curYSelectionRectangle);
		glVertex2f(finishDrawingPositionX, finishDrawingPositionZ);
		glVertex2f(curXSelectionRectangle, finishDrawingPositionZ);
		glEnd();
		glLineStipple(1, 0xFFFF);
		glColor4f(0.5, 0.5, 0.0, 0.5);
		glBegin(GL_QUADS);
		glVertex2f(curXSelectionRectangle, curYSelectionRectangle);
		glVertex2f(finishDrawingPositionX, curYSelectionRectangle);
		glVertex2f(finishDrawingPositionX, finishDrawingPositionZ);
		glVertex2f(curXSelectionRectangle, finishDrawingPositionZ);
		glEnd();
		glDisable (GL_LIGHTING);
	}
	drawInformation();
}