[][src]Function opencv::highgui::set_opengl_draw_callback

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

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)

C++ default parameters

  • userdata: 0