Запуск программ из OpenGL Red Book в Tao Framework + С#

Здравствуйте, поробовал переделать программу из руководства по программированию без корректной реакции на изменение размеров окна, но на экран ничего не выводится : он даже не очищается в заданный цвет. В чем может быть проблема ?

Вот исходный код из книжки ( листинг 2-5) :

#define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES);glVertex2f((x1),(y1));glVertex2f((x2),(y2));glEnd();

void init(void)
{
   glClearColor(1.0,1.0,1.0,0.0);
   glShadeModel(GL_FLAT);
}

void display(void)
{
   int i;

   glClear(GL_COLOR_BUFFER_BIT);

   //Черный цвет для всех линий
   glColor3f(0.0,0.0,0.0);

   glEnable(GL_LINE_STIPPLE);

   //В первом ряду три линии с разными шаблонами
   glLineWidth(1.0);
   glLineStipple(1,0x0101); //Пунктирная
   drawOneLine(50.0,125.0,150.0,125.0);
   glLineStipple(1,0x00FF); //Штриховая
   drawOneLine(150.0,125.0,250.0,125.0);
   glLineStipple(1,0x1C47); //Штрих-пунктирная
   drawOneLine(250.0,125.0,350.0,125.0);

   //Во втором ряду три толстые линии с аналогичными шаблонами
   glLineWidth(5.0);
   glLineStipple(1,0x0101); //Пунктирная
   drawOneLine(50.0,100.0,150.0,100.0);
   glLineStipple(1,0x00FF); //Штриховая
   drawOneLine(150.0,100.0,250.0,100.0);
   glLineStipple(1,0x1C47); //Штрих-пунктирная
   drawOneLine(250.0,100.0,350.0,100.0);

   //В третьем ряду шесть штрих-пунктирных линий, объединенных в ломаную
   glLineWidth(1.0);
   glLineStipple(1,0x1C47); //Штрих-пунктирная
   glBegin(GL_LINE_STRIP);
   for (i=0;i<7;i++)
    glVertex2f(50.0+((GLfloat)i*50.0),75.0);
   glEnd();

   //В четвертом ряду шесть независимых линий того же шаблона
   for (i=0;i<6;i++)
   {
    drawOneLine(50.0+((GLfloat)i*50.0),50.0,50.0+((GLfloat)(i+1)*50.0),50.0);
   }

   //В пятом ряду 1 штрих-пунктирная линия с фактором повторения=5
   glLineStipple(5,0x1c47);
   drawOneLine(50.0,25.0,350.0,25.0);

   glDisable(GL_LINE_STIPPLE);
   glFlush();
}

void reshape(int w,int h)
{
   glViewport(0,0,(GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   gluOrtho2D(0.0,400.0,0.0,150.0);
}

int main(int argc, char **argv)
{
   glutInit(&argc,argv);
   glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
   glutInitWindowSize(400,150);
   glutInitWindowPosition(100,100);
   glutCreateWindow("Line Stipple Patterns");
   init();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutMainLoop();
   return 0;
}

Как переделал (WindowsFormApplication по аналогии уроков с сайта)

namespace _2_5_
{
   public partial class Form1 : Form
   {
      public Form1()
      {
        InitializeComponent();
        AnT.InitializeContexts();
      }

      private void Form1_Load(object sender, EventArgs e)
      {
        // инициализация библиотеки GLUT
        Glut.glutInit();
        // инициализация режима окна

        Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

        // устанавливаем цвет очистки окна
        Gl.glClearColor(255, 255, 255, 1);

      //   Gl.glShadeModel(Gl.GL_FLAT);

        // устанавливаем порт вывода, основываясь на размерах   элемента управления AnT
        Gl.glViewport(0, 0, AnT.Width, AnT.Height);

        // устанавливаем проекционную матрицу
        Gl.glMatrixMode(Gl.GL_PROJECTION);
        // очищаем ее
        Gl.glLoadIdentity();

        Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

        timer1.Start();

      }

      private void drawOneLine(double x1, double y1,
       double x2,    double y2)
      {
        Gl.glBegin(Gl.GL_LINES);
        Gl.glVertex2d(x1, y1);
        Gl.glVertex2d(x2, y2);
        Gl.glEnd();
      }

      private void Draw()
      {
        int i;
        // Очищаем буфер цвета
        Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);

        Gl.glColor3d(0.0, 0.0, 0.0);

        Gl.glEnable(Gl.GL_LINE_STIPPLE);

        Gl.glLineWidth((float)1.0);
        Gl.glLineStipple(1, 0x0101);
        drawOneLine(50.0, 125.0, 150.0, 125.0);
        Gl.glLineStipple(1, 0x00FF); //Штриховая
        drawOneLine(150.0, 125.0, 250.0, 125.0);
        Gl.glLineStipple(1, 0x1C47); //Штрих-пунктирная
        drawOneLine(250.0, 125.0, 350.0, 125.0);

        //Во втором ряду три толстые
        // линии с аналогичными шаблонами
        Gl.glLineWidth((float)5.0);
        Gl.glLineStipple(1, 0x0101); //Пунктирная
        drawOneLine(50.0, 100.0, 150.0, 100.0);
        Gl.glLineStipple(1, 0x00FF); //Штриховая
        drawOneLine(150.0, 100.0, 250.0, 100.0);
        Gl.glLineStipple(1, 0x1C47); //Штрих-пунктирная
        drawOneLine(250.0, 100.0, 350.0, 100.0);

        //В третьем ряду шесть штрих-пунктирных линий,
        //   объединенных в ломаную
        Gl.glLineWidth((float)1.0);
        Gl.glLineStipple(1, 0x1C47); //Штрих-пунктирная
        Gl.glBegin(Gl.GL_LINE_STRIP);
        for (i = 0; i < 7; i++)
           Gl.glVertex2d(50.0 + ((float)i * 50.0), 75.0);
        Gl.glEnd();
        Gl.glFlush();

        AnT.Invalidate();
      }

      private void timer1_Tick(object sender, EventArgs e)
      {
        Draw();
      }
   }
}