Hey, I found this strange, maybe someone knows a better way:
The OGL canvas gadget that is in Tao.OpenGl does not repaint by itself. So to solve this I used <canvasNAME>.Invalidate();
It works fine until you start putting other gadgets(besides the canvas) on the window, it makes them look wierd... By wierd I mean missing everything but the white on the text gadgets.
here's my code I use for initalize OGL and painting on the canvas...
public void InitOpenGL()
{
simpleOpenGlControl1.InitializeContexts();
Gl.glViewport(0,0,800,500);
Gl.glClearColor(0, 0, 0, 0);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Glu.gluPerspective(45.0f,1.6f,0.1f,100.0f);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
}
void SimpleOpenGlControl1Paint(object sender, PaintEventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
Gl.glPushMatrix();
Gl.glLoadIdentity();
Gl.glTranslatef(0.0f, 0.0f,-7.0f);
Gl.glRotatef(rot,0.0f,1.0f,0.0f);
Gl.glRotatef(rot,1.8f,1.0f,1.2f);
Gl.glBegin(Gl.GL_QUADS);
//Front
Gl.glVertex3f(-1.5f, -1.0f, 1.5f);
Gl.glVertex3f(1.5f, -1.0f, 1.5f);
Gl.glVertex3f(1.5f, 1.0f, 1.5f);
Gl.glVertex3f(-1.5f, 1.0f, 1.5f);
//Right
Gl.glVertex3f(1.5f, -1.0f, -1.5f);
Gl.glVertex3f(1.5f, 1.0f, -1.5f);
Gl.glVertex3f(1.5f, 1.0f, 1.5f);
Gl.glVertex3f(1.5f, -1.0f, 1.5f);
//Back
Gl.glVertex3f(-1.5f, -1.0f, -1.5f);
Gl.glVertex3f(-1.5f, 1.0f, -1.5f);
Gl.glVertex3f(1.5f, 1.0f, -1.5f);
Gl.glVertex3f(1.5f, -1.0f, -1.5f);
//Left
Gl.glVertex3f(-1.5f, -1.0f, -1.5f);
Gl.glVertex3f(-1.5f, -1.0f, 1.5f);
Gl.glVertex3f(-1.5f, 1.0f, 1.5f);
Gl.glVertex3f(-1.5f, 1.0f, -1.5f);
Gl.glEnd();
Gl.glPopMatrix();
Gl.glFlush();
//**************************************************
simpleOpenGlControl1.Invalidate();//repaints the canvas
//**************************************************
rot += 1.6f;
}