OpenGL + QT problemas con GLUT



  • Recientemente empecé con el desarrollo de aplicaciones en QT, vaya sorpresa cuando un Profesor de mi Universidad me encargo un proyecto en QT + OpenGl.

    Llegue al límite y ya me siento desesperado de no avanzar en este problema “error: C2664: 'glutDisplayFunc' : cannot convert parameter 1 from 'void' to 'void (__cdecl *)(void)'
    Expressions of type void cannot be converted to other types”
    He leído y tengo que realizar un callback, ya que las funciones de C no son aceptadas por funciones de C++.
    Realice algunas opciones que me daban pero todas las opciones que encontraba son para un solo archivo, pero yo los tengo separados por .h, .cpp y main.

    MAIN
    Piston* p= new Piston();
    glutDisplayFunc(*p->display());

    .cpp
    void display(void){……}

    .h
    Public:
    void display();

    alguna idea?. Si no me di a entender o este post no va aquí háganme saberlo.



  • Este mensaje llega muy tarde pero es que me he registrado hoy mismo :P

    Que tengas el código en un archivo en dos o en mil no importa en absoluto, tu problema es que no puedes pasarle el método de un objeto como callback a glutDisplayFunc puesto que no tiene forma humana de saber como invocar dicha función.

    Debes pasarle o bien una función normal y corriente, es decir, que no sea un método de un objeto o bien pasarle una función estática del objeto Piston.

    Aunque supongo que con todo el tiempo que ha transcurrido desde tu pregunta hasta esta respuesta debes haberlo solucionado por otro lado aunque como dice el refrán...

    Más vale tarde que nunca.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.