Function set_opengl_draw_callback

Source
pub fn set_opengl_draw_callback(
    winname: &str,
    on_opengl_draw: OpenGlDrawCallback,
) -> Result<()>
Expand description

Sets a callback function to be called to draw on top of displayed image.

The function setOpenGlDrawCallback can be used to draw 3D data on the window. See the example of callback function below:

   void on_opengl(void* param)
   {
       glLoadIdentity();

       glTranslated(0.0, 0.0, -1.0);

       glRotatef( 55, 1, 0, 0 );
       glRotatef( 45, 0, 1, 0 );
       glRotatef( 0, 0, 0, 1 );

       static const int coords[6][4][3] = {
           { { +1, -1, -1 }, { -1, -1, -1 }, { -1, +1, -1 }, { +1, +1, -1 } },
           { { +1, +1, -1 }, { -1, +1, -1 }, { -1, +1, +1 }, { +1, +1, +1 } },
           { { +1, -1, +1 }, { +1, -1, -1 }, { +1, +1, -1 }, { +1, +1, +1 } },
           { { -1, -1, -1 }, { -1, -1, +1 }, { -1, +1, +1 }, { -1, +1, -1 } },
           { { +1, -1, +1 }, { -1, -1, +1 }, { -1, -1, -1 }, { +1, -1, -1 } },
           { { -1, -1, +1 }, { +1, -1, +1 }, { +1, +1, +1 }, { -1, +1, +1 } }
       };

       for (int i = 0; i < 6; ++i) {
                   glColor3ub( i*20, 100+i*10, i*42 );
                   glBegin(GL_QUADS);
                   for (int j = 0; j < 4; ++j) {
                            glVertex3d(0.2 * coords[i][j][0], 0.2 * coords[i][j][1], 0.2 * coords[i][j][2]);
                   }
                   glEnd();
       }
   }

ยงParameters

  • winname: Name of the window.
  • onOpenGlDraw: Pointer to the function to be called every frame. This function should be prototyped as void Foo(void*) .
  • userdata: Pointer passed to the callback function.(Optional)