Find the answer to your Linux question:
Results 1 to 2 of 2
Hello, I'm having a problem with my application, recently i have installed ubuntu and my work does not work on it. The problem is that, whenever i want to run ...
  1. #1
    Just Joined!
    Join Date
    Sep 2009
    Posts
    2

    wxWidgets + opengl

    Hello,
    I'm having a problem with my application, recently i have installed ubuntu and my work does not work on it. The problem is that, whenever i want to run my code, the openGL starts but it does not refresh itself (what i mean by that is - the cubes are not rotating). Only resizing will refresh the window(and rotate the cubes). Here is code for my app: link: wrzuc.net/get.php?what=f79vh3xyliengine.zip

    I have added this code to test the cube rotations.
    Code:
    GLfloat	rtri=0;
    GLfloat	rquad=0;
    void liEngineGl::Render(void)
    {
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
    	glLoadIdentity();									// Reset The Current Modelview Matrix
    	glTranslatef(-1.5f,0.0f,-6.0f);						// Move Left 1.5 Units And Into The Screen 6.0
    	glRotatef(rtri,0.0f,1.0f,0.0f);						// Rotate The Triangle On The Y axis ( NEW )
    	glBegin(GL_TRIANGLES);								// Start Drawing A Triangle
    		glColor3f(1.0f,0.0f,0.0f);						// Red
    		glVertex3f( 0.0f, 1.0f, 0.0f);					// Top Of Triangle (Front)
    		glColor3f(0.0f,1.0f,0.0f);						// Green
    		glVertex3f(-1.0f,-1.0f, 1.0f);					// Left Of Triangle (Front)
    		glColor3f(0.0f,0.0f,1.0f);						// Blue
    		glVertex3f( 1.0f,-1.0f, 1.0f);					// Right Of Triangle (Front)
    		glColor3f(1.0f,0.0f,0.0f);						// Red
    		glVertex3f( 0.0f, 1.0f, 0.0f);					// Top Of Triangle (Right)
    		glColor3f(0.0f,0.0f,1.0f);						// Blue
    		glVertex3f( 1.0f,-1.0f, 1.0f);					// Left Of Triangle (Right)
    		glColor3f(0.0f,1.0f,0.0f);						// Green
    		glVertex3f( 1.0f,-1.0f, -1.0f);					// Right Of Triangle (Right)
    		glColor3f(1.0f,0.0f,0.0f);						// Red
    		glVertex3f( 0.0f, 1.0f, 0.0f);					// Top Of Triangle (Back)
    		glColor3f(0.0f,1.0f,0.0f);						// Green
    		glVertex3f( 1.0f,-1.0f, -1.0f);					// Left Of Triangle (Back)
    		glColor3f(0.0f,0.0f,1.0f);						// Blue
    		glVertex3f(-1.0f,-1.0f, -1.0f);					// Right Of Triangle (Back)
    		glColor3f(1.0f,0.0f,0.0f);						// Red
    		glVertex3f( 0.0f, 1.0f, 0.0f);					// Top Of Triangle (Left)
    		glColor3f(0.0f,0.0f,1.0f);						// Blue
    		glVertex3f(-1.0f,-1.0f,-1.0f);					// Left Of Triangle (Left)
    		glColor3f(0.0f,1.0f,0.0f);						// Green
    		glVertex3f(-1.0f,-1.0f, 1.0f);					// Right Of Triangle (Left)
    	glEnd();											// Done Drawing The Pyramid
    
    	glLoadIdentity();									// Reset The Current Modelview Matrix
    	glTranslatef(1.5f,0.0f,-7.0f);						// Move Right 1.5 Units And Into The Screen 7.0
    	glRotatef(rquad,1.0f,1.0f,1.0f);					// Rotate The Quad On The X axis ( NEW )
    	glBegin(GL_QUADS);									// Draw A Quad
    		glColor3f(0.0f,1.0f,0.0f);						// Set The Color To Green
    		glVertex3f( 1.0f, 1.0f,-1.0f);					// Top Right Of The Quad (Top)
    		glVertex3f(-1.0f, 1.0f,-1.0f);					// Top Left Of The Quad (Top)
    		glVertex3f(-1.0f, 1.0f, 1.0f);					// Bottom Left Of The Quad (Top)
    		glVertex3f( 1.0f, 1.0f, 1.0f);					// Bottom Right Of The Quad (Top)
    		glColor3f(1.0f,0.5f,0.0f);						// Set The Color To Orange
    		glVertex3f( 1.0f,-1.0f, 1.0f);					// Top Right Of The Quad (Bottom)
    		glVertex3f(-1.0f,-1.0f, 1.0f);					// Top Left Of The Quad (Bottom)
    		glVertex3f(-1.0f,-1.0f,-1.0f);					// Bottom Left Of The Quad (Bottom)
    		glVertex3f( 1.0f,-1.0f,-1.0f);					// Bottom Right Of The Quad (Bottom)
    		glColor3f(1.0f,0.0f,0.0f);						// Set The Color To Red
    		glVertex3f( 1.0f, 1.0f, 1.0f);					// Top Right Of The Quad (Front)
    		glVertex3f(-1.0f, 1.0f, 1.0f);					// Top Left Of The Quad (Front)
    		glVertex3f(-1.0f,-1.0f, 1.0f);					// Bottom Left Of The Quad (Front)
    		glVertex3f( 1.0f,-1.0f, 1.0f);					// Bottom Right Of The Quad (Front)
    		glColor3f(1.0f,1.0f,0.0f);						// Set The Color To Yellow
    		glVertex3f( 1.0f,-1.0f,-1.0f);					// Top Right Of The Quad (Back)
    		glVertex3f(-1.0f,-1.0f,-1.0f);					// Top Left Of The Quad (Back)
    		glVertex3f(-1.0f, 1.0f,-1.0f);					// Bottom Left Of The Quad (Back)
    		glVertex3f( 1.0f, 1.0f,-1.0f);					// Bottom Right Of The Quad (Back)
    		glColor3f(0.0f,0.0f,1.0f);						// Set The Color To Blue
    		glVertex3f(-1.0f, 1.0f, 1.0f);					// Top Right Of The Quad (Left)
    		glVertex3f(-1.0f, 1.0f,-1.0f);					// Top Left Of The Quad (Left)
    		glVertex3f(-1.0f,-1.0f,-1.0f);					// Bottom Left Of The Quad (Left)
    		glVertex3f(-1.0f,-1.0f, 1.0f);					// Bottom Right Of The Quad (Left)
    		glColor3f(1.0f,0.0f,1.0f);						// Set The Color To Violet
    		glVertex3f( 1.0f, 1.0f,-1.0f);					// Top Right Of The Quad (Right)
    		glVertex3f( 1.0f, 1.0f, 1.0f);					// Top Left Of The Quad (Right)
    		glVertex3f( 1.0f,-1.0f, 1.0f);					// Bottom Left Of The Quad (Right)
    		glVertex3f( 1.0f,-1.0f,-1.0f);					// Bottom Right Of The Quad (Right)
    	glEnd();											// Done Drawing The Quad
    
    	rtri+=0.2f;											// Increase The Rotation Variable For The Triangle ( NEW )
    	rquad-=0.15f;										// Decrease The Rotation Variable For The Quad ( NEW )
    }
    
    void liEngineGl::InitGL(void)
    {
    	glShadeModel(GL_SMOOTH);							// Enable Smooth Shading
    	glClearColor(0.0f, 0.0f, 0.0f, 0.5f);				// Black Background
    	glClearDepth(1.0f);									// Depth Buffer Setup
    	glEnable(GL_DEPTH_TEST);							// Enables Depth Testing
    	glDepthFunc(GL_LEQUAL);								// The Type Of Depth Testing To Do
    	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// Really Nice Perspective Calculations
    }
    I'm very frustrated right now, because i said 'no' to Vista, and decided to end my project on Linux, and now i really don't want to install that nightmare which Vista really is.

    I'm on Ubuntu and i my laptop spec are
    Manufacturer: Dell Inc.
    Processor: Intel(R) Core(TM)2 Duo CPU T6400 @ 2.00GHz (2 CPUs), ~2.0GHz
    Memory: 4054MB RAM
    Hard Drive: 320 GB
    Video Card: Mobile Intel(R) 4 Series Express Chipset Family

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    Unfortunately I'm not experienced with OpenGL, and my last work with wx was almost 10 years ago. However, I think that you are experiencing a buffering problem in that your changes have not been transmitted to the actual graphics engine. Is there an OpenGL or wxWidget funtion to refresh the display? If so, then try that after you have finished your updates to the "display".
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...