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

C++Builder Discussion :

OpenGl et C++ Builder (XE6)


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut OpenGl et C++ Builder (XE6)
    Bonjour,
    quelqu'un a-t-il utilisé OpenGl avec C++ Builder ?
    Suffit-t-il d'ajouter les fichiers *.lib et *.h nécessaire,
    ou faut-il également charger un logiciel supplémentaire ?
    Et dans ce cas quel logiciel ?
    Merci
    Gilbert PASQUALINI

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    bonsoir oui les fichiers .lib suffisent et sans doute on peut se passer des fichiers .h
    Il faut créer un projet win32 et non utilisant la VCL
    Mais utiliser la VCL avec Open GL ça doit être possible également ; chercher sur Internet il doit exister certainement des "wrappers"

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    bonsoir oui les fichiers .lib suffisent et sans doute on peut se passer des fichiers .h
    Il faut créer un projet win32 et non utilisant la VCL
    Mais utiliser la VCL avec Open GL ça doit être possible également ; chercher sur Internet il doit exister certainement des "wrappers"
    Merci,
    dois je comprendre qu'il me suffirait d'inclure les 2 ou 3 fichiers lib pour pouvoir utiliser OpenGl ?
    Je vais essayer et vous dirais ce qui se passe.
    Gilbert PASQUALINI

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Il faut créer un projet win32 et non utilisant la VCL
    Qu'est ce que tu veux dire ? Je ne comprends pas ?
    Du temps où je faisais des projets opengl, mes projets étaient VCL (sous delphi, mais c'est pareil).
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    @Lung avec Delphi ou C++ Builder on peut faire des projets soit avec la VCL pour gérer les fenêtres et autres classes soit des programmes win32 "nus" où il faut tout gérer.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Il est en effet possible d'utiliser OpenGl avec un projet VCL.
    Comme Lung a utilisé OpenGl, je lui demanderai probablement une aide.
    Le remerciant par avance.
    Gilbert PASQUALINI

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Je m'étais contenté d'ajouter les bibliothèques utiles dans les uses.

    Sinon, voici un exemple d'initialisation (c'est du delphi) dans un de mes vieux projet :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
       InitOpenGL(FormGL.Canvas.Handle, 32, True);
     
    ...
     
    function TFormGL.InitOpenGL(const DC: HDC; const nColorBits: Integer; const bDoubleBuffer, bAffMsg: Boolean): Boolean;
    var
       PFD: TPixelFormatDescriptor;
       nPixelFormat: Integer;
       szErreur: String;
    begin
       // Initialisation de la structure d'information sur le PFD.
       FillChar(PFD, SizeOf(PFD), 0);
       with PFD do
       begin
          nSize := Sizeof(TPixelFormatDescriptor);
          if bDoubleBuffer then
             dwFlags := PFD_DOUBLEBUFFER or PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL
          else
             dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL;
          iPixelType := PFD_TYPE_RGBA;
          nVersion := 1;
          cColorBits := nColorBits;
          cdepthBits := 16;
          cRedBits := 0;
          cRedShift := 0;
          cGreenBits := 0;
          cGreenShift := 0;
          cBlueBits := 0;
          cBlueShift := 0;
          cAlphaBits := 0;
          cAlphaShift := 0;
          cAccumBits := 0;
          cAccumRedBits := 0;
          cAccumGreenBits := 0;
          cAccumBlueBits := 0;
          cAccumAlphaBits := 0;
          cStencilBits := 24;
          cAuxBuffers := 0;
          iLayerType := PFD_MAIN_PLANE;
          bReserved := 0;
          dwLayerMask := 0;
          dwVisibleMask := 0;
          dwDamageMask := 0;
       end;
     
       // Récupération du DC passé en paramètre, dans une variable Globale.
       _hDCGlobal := DC;
     
       // Choix du PFD adapté pour le DC reçu en paramètre.
       nPixelFormat := ChoosePixelFormat(DC, @PFD);
     
       // Vérification si l'index du PFD supporté à été trouvé.
       Result := (nPixelFormat <> 0);
       if not Result Then
       begin
          szErreur := 'Erreur PFD :  ' + SysErrorMessage(GetLastError);
          ...
          Exit;
       end;
     
       // Vérification si le PFD trouvé peut être appliqué sur le DC.
       Result := SetPixelFormat(DC, nPixelFormat, @PFD);
       if not Result then
       begin
          szErreur := 'Erreur application PFD sur le DC :  ' + SysErrorMessage(GetLastError);
          ...
          Exit;
       end;
     
       // Vérification si OpenGL peut créer la passerelle qui lui permettra de dessiner sur ce DC.
       _GLContext := wglCreateContext(DC);
       Result := _GLContext <> 0;
       if not Result then
       begin
          szErreur := 'Erreur OpenGL (wglCreateContext):  ' + SysErrorMessage(GetLastError);
          ...
          Exit;
       end;
     
       // Vérification si OpenGL peut se servir de ce DC pour dessiner.
       Result := wglMakeCurrent(DC, _GLContext);
       if not Result then
       begin
          szErreur := 'Erreur OpenGL (wglMakeCurrent):  ' + SysErrorMessage(GetLastError);
          ..
          Exit;
       end;
     
       // Test des erreurs OpenGL.
       if TestErreur('Pré-initialisations OpenGL', bAffMsg) then
          _bErreurInit := True;
    end;
    Je ne dis pas que c'est parfait, mais c'est pour donner des idées ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 481
    Points : 242
    Points
    242
    Par défaut
    Merci, l’adaptation à C++ Builder ne doit poser aucun problème.

    J'ai essayé d'adapter un programme Opengl, ,que j'ai trouvé sur Internet.
    Il s'agit de créer une "éponge de Menger".
    C'est une fractale tridimensionnelle.

    Je bute sur une difficulté. Elle est due aux fonctions glut....:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            glutInit(&argc, argv);
    	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    	glEnable(GL_DEPTH_TEST);
    	glutInitWindowSize(500,500);
    	glutInitWindowPosition(0,0);
    	glutCreateWindow(*argv);
    	glutReshapeFunc(reshape);
    	glutDisplayFunc(display);
    	glutIdleFunc(idle);
    	glutMainLoop();
    Je n'ai pas trouvé le glut.h et la librairie qui lui correspond.
    Peu-t-on réaliser les mêmes opérations sans glut.. ?
    Pouvez vous me secourir ?
    Merci.
    Gilbert PASQUALINI

Discussions similaires

  1. WS REST ODATA en builder XE6
    Par dm38 dans le forum C++Builder
    Réponses: 0
    Dernier message: 05/05/2015, 14h52
  2. [IDE] Migration d'un projet vers C++ Builder XE6
    Par Irisael dans le forum C++Builder
    Réponses: 1
    Dernier message: 01/09/2014, 15h17
  3. L edition starter de c++ builder xe6
    Par cedni dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/07/2014, 09h26
  4. openGL et c++ builder 6
    Par KalKul dans le forum OpenGL
    Réponses: 2
    Dernier message: 24/03/2008, 14h13
  5. OpenGL avec C++ Builder
    Par bekkai dans le forum OpenGL
    Réponses: 1
    Dernier message: 03/03/2006, 21h32

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