glutDisplayFunc
ожидает void (*func)(void)
, но вы передаете void (Room::*func)(void)
.
Поскольку методы класса получают неявный параметр this
, их типы указателей принципиально отличаются от обычных указателей на функции,Между ними невозможно преобразование.
Все, что вы можете сделать, это сделать OnDisplay
статическим членом Room
.Оттуда вы можете переадресовать вызов функции-члену конкретного экземпляра Room (поскольку в проекте предусмотрен только один обратный вызов дисплея с перенасыщением и вы перешли с процедурного кода, я предполагаю, что у вас есть только один объект Room
).