IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Delphi & GLFW


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    j00
    j00 est déconnecté
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Par défaut Delphi & GLFW
    Bonjour,

    Je viens de débuter sous Delphi, et pour un projet, je dois coder un jeu (moteur graphique disons) en OpenGL.

    Pour la librairie, nous avons choisi glfw (pas de GLScene :/).

    J'ai pas mal googlé, mais je trouve principalement du code C/C++ ou alors, c'est en rapport avec des classes, des gros trucs de bourrin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    void GLFWCALL OnResize(int w, int h) // C'est ceci qui me bloque
    {
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0, w, 0, h);
    }
     
    void Display()
    {
    glClear(GL_COLOR_BUFFER_BIT);
    }
     
    int main()
    {
    int running = GL_TRUE;
     
    glfwInit();
     
    if(!glfwOpenWindow(640, 480, 0, 0, 0, 0, 0, 0, GLFW_WINDOW))
    {
    glfwTerminate();
    return -1;
    }
     
    glfwSetWindowPos(192, 144);
    glfwSetWindowTitle("Fenêtre GLFW");
     
    glfwSetWindowSizeCallback(OnResize); // et là son appel
     
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
     
    while(running)
    {
    Display();
    glfwSwapBuffers();
    running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
    }
    glfwTerminate();
     
    return 0;
    }
    Sauf que je ne sais pas comment indiquer à Delphi le GLFWCALL :
    Je l'ai transposé en Delphi comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure {GLFWCALL} OnResize(w, h : integer);
     
    begin
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0, w, 0, h);
    end;
    et l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    glfwSetWindowSizeCallback(OnResize);
    Je sais que c'est pas beau, dans le glfw.pas, il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure glfwSetWindowRefreshCallback(cbfun: GLFWwindowrefreshfun); stdcall;
    qui est inclu au projet. OnResize a besoin de deux parametres : w et h, mais je ne voies pas ou ils sont appelés dans la source en C.

    J'espère que quelqu'un pourra m'aider, ca m'embête déjà d'être bloqué à ce niveau... J'ai certainement du louper quelque chose, donc si vous avez des conseils, adresses, codes sources pour apprendre, j'en serai ravi

    Merci ^^

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure OnResize(w, h : integer); STDCALL; 
     
    begin 
    glViewport(0, 0, w, h); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluOrtho2D(0, w, 0, h); 
    end;
    voila, sinon je suppose que w et h (width et height) sont transmis par glfwwindowsizecallback.

    epitéen?


    @+

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  3. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  4. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo