Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

OpenGL: Problem with drawing update.

$
0
0
Hello guys.
I'm trying to make a drawing in a window change his size every time i hit 'b' in my keyboard, but is not working properly.
Every time i hit 'b', "glVertex3f(x,y,z)" in "renderPrimitive()"function recieves new values for x and y and may drawing gets bigger. This is working fine, but my drawing gets bigger only if i click outside of my window and click back in the window. What i have to do to solve this problem?
void renderPrimitive(void) 
{
	glBegin(GL_QUADS);
	//spaceship is a global TAD who update his variables everytime i hit 'b', i do this in a callback.
    	glVertex3f(spaceship->blcx, spaceship->blcy, 0.0); // The bottom left corner  
    	glVertex3f(spaceship->tlcx, spaceship->tlcy, 0.0); // The top left corner  
    	glVertex3f(spaceship->trcx, spaceship->trcy, 0.0); // The top right corner  
    	glVertex3f(spaceship->brcx, spaceship->brcy, 0.0); // The bottom right corner  
	glEnd();
} 

void reshape(int width, int height)
{
  	glViewport(0, 0, (GLsizei)width, (GLsizei)height);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(60, (GLfloat)width / (GLfloat)height, 1.0, 100.0);
	glMatrixMode(GL_MODELVIEW);
}

void display(void)
{
	glClearColor(1.f, 0.f, 0.f, 1.f);
	glClear (GL_COLOR_BUFFER_BIT);
	glLoadIdentity();	
	glTranslatef(0.0f, 0.0f, -5.0f);	
	renderPrimitive();
	glFlush();
}

int main(int argc, char **argv)
{
	spaceship = create_spaceship(spaceship);
	glutInit(&argc, argv);

	glutInitDisplayMode (GLUT_SINGLE); 
	glutInitWindowSize (800, 600);
	glutInitWindowPosition (100, 50);
	glutCreateWindow ("My first OpenGL Window");

	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
	
	glutKeyboardFunc(key_pressed);

	glutMainLoop();
}

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>