Para pasar un puntero a una función miembro

Tengo una clase con funciones de instancia (¿o métodos?). Desde dentro de una instancia, trato de pasar punteros a esas funciones a una biblioteca. La biblioteca espera funciones estáticas.

Cuando paso mis punteros a las funciones de devolución de llamada, el compilador se queja de que mis funciones no son estáticas. Traté de ponerlos en estado estático, pero si lo hago, entonces no puedo acceder a los campos de instancia desde dentro de las funciones.

¿Cómo podría solucionar esto?

Una pregunta similar es:Usando una función miembro de la clase C ++ como una función de devolución de llamada C Donde se sugiere poner el método estático. Sin embargo, no puedo hacer eso, o no veo cómo podría.

Código
GlutController::GlutController (int argc, char **argv) {

   // stuff ..

   // Register callbacks
   glutSpecialFunc( OnSpecialKeys );  // Error, need static functions
   glutReshapeFunc( OnChangeSize );   // Error...
   glutDisplayFunc( OnRenderScene );  // Error...

   // stuff ..
}

GlutController::~GlutController() {

}

void GlutController::OnChangeSize(int aNewWidth, int aNewHeight){

   glViewport(0,0,aNewWidth, aNewHeight);
   mViewFrustrum.SetPerspective( APP_CAMERA_FOV,             // If this function is 
            float( aNewWidth ) / float( aNewHeight ),        // static, this won't 
            APP_CAMERA_NEAR,                                 // work
            APP_CAMERA_FAR );
   mProjectionMatrixStack.LoadMatrix(                        // Same here
            mViewFrustrum.GetProjectionMatrix() );
   mTransformPipeline.SetMatrixStacks(mModelViewMatrixStack, // Same here  
            mProjectionMatrixStack);

}

void GlutController::OnRenderScene(void){
   mGeometryContainer.draw();                                // Won't work if static
}

void GlutController::OnSpecialKeys(int key, int x, int y){
   mGeometryContainer.updateKeys(key);                       // Won't work if static
}

Descargo de responsabilidad: acabo de comenzar C ++. Leí todo Accelerated C ++ y este es mi primer proyecto para probar el idioma. Mi formación es en Java.

Respuestas a la pregunta(4)

Su respuesta a la pregunta