Texte sur du openGL

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Texte sur du openGL

Message par SPH »

Salut, :idea:

Sauriez vous me dire comment écrire du texte sur un écran openGL ?

Merci d'avance... 8)

Code : Tout sélectionner

If ExamineDesktops()
  ddw=DesktopWidth(0)
  ddh=DesktopHeight(0)
Else
  ddw=1024
  ddh=768
EndIf


If OpenWindow(0, 0, 0, 0, 0, "texte openGL",#PB_Window_Maximize|#PB_Window_BorderLess)=0
 
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenWindow() impossible")
  End
EndIf
SetWindowColor(0, #Black)
GL=OpenGLGadget(1,0,0,ddw,ddh)
If GL=0
  Beep_(500,250) : Delay(150) : Beep_(500,250)
  Debug ("OpenGLGadget() impossible")
  End
EndIf




; ecrire un texte a l'ecran 




  SetGadgetAttribute(1,#PB_OpenGL_FlipBuffers,#True)
 Delay(2000)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

salut SPH
dans ton lien :https://www.purebasic.fr/french/viewtop ... =2&t=18225
après ton image de lune rouge le post suivant j'aimis ton un code avec un exemple d' écriture

sinon sous opengl c 'est un peu plus compliqué
j 'avais posté l'exemple d'appelpi
https://www.purebasic.fr/french/viewtop ... =6&t=17867
Cordialement

ps: nous n'avons pas ton image "image_gl.bmp" de ton code polygones
Dernière modification par kernadec le lun. 07/déc./2020 11:39, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

kernadec a écrit :salut SPH
dans ton lien :https://www.purebasic.fr/french/viewtop ... =2&t=18225
après ton image de lune rouge le post suivant j'aimis ton un code avec un exemple d' écriture
Oui oui, j'ai vu. Mais ca ne m'a pas convaincu (le messagerequester pour bloquer le texte...), moyen
kernadec a écrit :sinon sous opengl c 'est un peu plus compliqué
j 'avais posté l'exemple d'appelpi
https://www.purebasic.fr/french/viewtop ... =6&t=17867
Cordialement
Je regarde...
Ha ouiiii, je connaissais ton code !
En effet, rien de simple en openGL...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

bjr SPH
je vois que ton code avance, merci pour le partage :D
@SPH pourrais tu donner un lien pour ton image du code Polygones Editor : image_gl.bmp et ae.bmp

je t'ai bricolé un dispositif d'affichage sans utiliser MessageRequester()
mais juste la touche Space on / off

Cordialement

Code : Tout sélectionner

;##################################################################
;  Ecriture sur window(0) qui apparait sur OpenGLGadget
;##################################################################

Enumeration
  #Windows
  #Openglgadget
EndEnumeration

#fond = 0               ; couleur de fond de la fenetre
#ligne = 20             ; Taille format saut de ligne avec Drawtext
#DecaleText_X = 300     ; valeur de la position X du texte sur OpengelGadget
#DecaleText_Y = 28      ; valeur de la position Y du texte sur OpengelGadget
#DecaleTitre_X = 400    ; valeur de la position X du Titre sur la Fenetre 0
#DecaleTitre_Y = 12     ; valeur de la position Y du texte sur la Fenetre 0


Procedure Opengl_Key_Pause()
  key = 0
  Repeat
    Event = WaitWindowEvent()
    If EventType() = #PB_EventType_KeyDown
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)   
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : EndIf  ;#PB_Shortcut_Space
    EndIf
  Until key = #PB_Shortcut_Space
EndProcedure

Procedure help()
  StartDrawing(WindowOutput(#Windows))
  ;Box(WindowWidth(0) - #DecaleText_X, WindowX(0) +  #DecaleText_Y-1, 265, 360, #Red)   ; #DecaleTitre_X - 180, #DecaleTitre_Y
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 0  , "' 1 >< 2 ' = Rouge + 0.01 / Rouge - 0.01"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 1  , "' 3 >< 4 ' = Vert     + 0.01 /  Vert     - 0.01" , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 2  , "' 5 >< 6 ' = Bleu    + 0.01 /  Bleu    - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 3  , "' + >< -  ' =  Alpha  + 0.01 /  Alpha  - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 4  , "' 7 ' = Rouge 0.5  "                             , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 5  , "' 8 ' = Vert    0.5  "                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 6  , "' 9 ' = Bleu   0.5  "                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 7  , "' * ><  /  ' =  Alpha  /  NO Alpha"              , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 8  , "' p ' = Piquer Couleur sur image de Fond"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 9  , "' h ' = Active/Desactive dernier 'Triangle'"     , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 10  , "' m ' = Model ON/OFF"                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 11  , "' k ' = Kill le dernier Polygone"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 12  , "' i ' = Afficher l'image de fond"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 13  , "' c ' = Continuer sur un Model"                 , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 14  , "' z ' = Zoom ON/OFF"                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 15  , "' a ' = Tout mettre en Alpha ON/OFF"            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 16  , "' F1 ' = Couleur précédente en memoire"         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 17  , "' F2 ' = Couleur suivante en memoire"           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 18  , "' F3 ' = Model précédent"                       , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 19  , "' F4 ' = Model suivant"                         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 20  , "' F5 ' = Sauve les polygones"                   , #White , fond)
  StopDrawing()
  Delay(25)
EndProcedure

Procedure Titre()
  StartDrawing(WindowOutput(#Windows))
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X, WindowX(#Windows) + #DecaleTitre_Y  , "                                                                                                                 ", #Black, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X -  40, WindowX(#Windows) + #DecaleTitre_Y  , "RVBA( " + Str(rouge * 255) + " , " + Str(vert * 255) + " , " + Str(bleu * 255) + " , " + Str(alpha * 255) + " )" , #White, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X + 100, WindowX(#Windows) + #DecaleTitre_Y  , "AIDE = Touche Espace ON / OFF" , #Green, #Black)
  StopDrawing()
  Delay(25)
EndProcedure

If OpenWindow(#Windows, 0, 0, DesktopResolutionX(), DesktopResolutionY(), "", #PB_Window_Maximize|#PB_Window_BorderLess)
  SetWindowColor(#Windows, #Black)
  OpenGLGadget(#OpenGLGadget, 0, 28, WindowWidth(#Windows), WindowHeight(#Windows) - 28, #PB_OpenGL_Keyboard)
  
  Titre()                                ; affiche code RGBA couleur sur windows(0) et OpenGLGadget plus bas de 28 pixels                                                     
                                         ; pour afficher le titre direct sur OpenGLGaget mettre Titre() dans la boucle repeat et modifier X et H d' OpenGLGadget
  
  SetActiveGadget(#OpenGLGadget)         ; Focus OpenGlGadget
  
  Repeat
    
    ; Titre()                             ; affiche code RGBA couleur sur OpenGLGadget avec delay pour syntillement pour cela modifier taille et emplacement d'openGLGadget
    
    Event = WaitWindowEvent()
    
    If EventType() = #PB_EventType_KeyDown
      Keyf = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Modifiers)
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)
      
      If Keyf = #PB_OpenGL_Control
        If key = #PB_Shortcut_R : Debug "ctrl + R": EndIf         ; mode combinaison avec controle + r
      Else
        If key = #PB_Shortcut_R : Debug "r": EndIf                ; mode touche r
      EndIf
      
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : help() : Opengl_Key_Pause() : EndIf
      
    EndIf
    SetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_FlipBuffers, #True)
    
  Until  key = #PB_Shortcut_Escape
  
EndIf
Dernière modification par kernadec le mer. 09/déc./2020 19:26, modifié 6 fois.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

kernadec a écrit :bjr SPH
je vois que ton code avance, merci pour le partage :D
@SPH pourrais tu donner un lien pour ton image du code Polygones Editor : image_gl.bmp et ae.bmp
http://xmas.free.fr/image_gl.bmp
http://xmas.free.fr/ae.bmp

Ce sont des images quelconques pour l'instant :!:

Bon, je matte ton code :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

Bon, j'ai regardé ton code et je constate que ce n'est pas du plein ecran en OpenGLGadget (-28 en hauteur)
Et ton texte est mis sur le OpenWindow (je crois).
Mais ca m'a donné une idée quand meme (basculer d'une fenetre a l'autre pour afficher l'aide... A voir :idea:

Bon, par contre, si tu as une procedure pour reellement afficher du texte sur de l'openGL, je suis preneur :P

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

J ai mis le code a jours
tu regarde l appel de procedure titre()
met le dans la boucle et que tu
Retire le decalage du gadget
Le texte s affichera plein ecran opengl
C est documente dans le code
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

Grand merci pour ton temps.

Je regarde ca tout de suite :P

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

Non, en retirant le decallage du -28, ca ne marche plus

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

Ya le decalage en x et y a retirer
Titre avant la boucle doit etre mes en commentaires
Et titre() apres repeat doit etre decommente
Ca marche chez moi
Comme tu le vois la liste apparait sur
Le gadget. et donc le titre aussi y sera
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

J'ai le syndrome de la lune (voir Falsam =) ) donc, je te colle les modifs mais ca ne marche pas :

Code : Tout sélectionner

;##################################################################
;  Ecriture sur window(0) qui apparait sur OpenGLGadget
;##################################################################

Enumeration
  #Windows
  #Openglgadget
EndEnumeration

#fond = 0               ; couleur de fond de la fenetre
#ligne = 20             ; Taille format saut de ligne avec Drawtext
#DecaleText_X = 0     ; valeur de la position X du texte sur OpengelGadget
#DecaleText_Y = 0      ; valeur de la position Y du texte sur OpengelGadget
#DecaleTitre_X = 400    ; valeur de la position X du Titre sur la Fenetre 0
#DecaleTitre_Y = 12     ; valeur de la position Y du texte sur la Fenetre 0


Procedure Opengl_Key_Pause()
  key = 0
  Repeat
    Event = WaitWindowEvent()
    If EventType() = #PB_EventType_KeyDown
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)   
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : EndIf  ;#PB_Shortcut_Space
    EndIf
  Until key = #PB_Shortcut_Space
EndProcedure

Procedure help()
  StartDrawing(WindowOutput(#Windows))
  ;Box(WindowWidth(0) - #DecaleText_X, WindowX(0) +  #DecaleText_Y-1, 265, 360, #Red)   ; #DecaleTitre_X - 180, #DecaleTitre_Y
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 0  , "' 1 >< 2 ' = Rouge + 0.01 / Rouge - 0.01"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 1  , "' 3 >< 4 ' = Vert     + 0.01 /  Vert     - 0.01" , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 2  , "' 5 >< 6 ' = Bleu    + 0.01 /  Bleu    - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 3  , "' + >< -  ' =  Alpha  + 0.01 /  Alpha  - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 4  , "' 7 ' = Rouge 0.5  "                             , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 5  , "' 8 ' = Vert    0.5  "                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 6  , "' 9 ' = Bleu   0.5  "                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 7  , "' * ><  /  ' =  Alpha  /  NO Alpha"              , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 8  , "' p ' = Piquer Couleur sur image de Fond"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 9  , "' h ' = Active/Desactive dernier 'Triangle'"     , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 10  , "' m ' = Model ON/OFF"                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 11  , "' k ' = Kill le dernier Polygone"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 12  , "' i ' = Afficher l'image de fond"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 13  , "' c ' = Continuer sur un Model"                 , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 14  , "' z ' = Zoom ON/OFF"                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 15  , "' a ' = Tout mettre en Alpha ON/OFF"            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 16  , "' F1 ' = Couleur précédente en memoire"         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 17  , "' F2 ' = Couleur suivante en memoire"           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 18  , "' F3 ' = Model précédent"                       , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 19  , "' F4 ' = Model suivant"                         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 20  , "' F5 ' = Sauve les polygones"                   , #White , fond)
  StopDrawing()
  Delay(25)
EndProcedure

Procedure Titre()
  StartDrawing(WindowOutput(#Windows))
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X, WindowX(#Windows) + #DecaleTitre_Y  , "                                                                                                                 ", #Black, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X -  40, WindowX(#Windows) + #DecaleTitre_Y  , "RVBA( " + Str(rouge * 255) + " , " + Str(vert * 255) + " , " + Str(bleu * 255) + " , " + Str(alpha * 255) + " )" , #White, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X + 100, WindowX(#Windows) + #DecaleTitre_Y  , "AIDE = Touche Espace ON / OFF" , #Green, #Black)
  StopDrawing()
  Delay(25)
EndProcedure

If OpenWindow(#Windows, 0, 0, DesktopResolutionX(), DesktopResolutionY(), "", #PB_Window_Maximize|#PB_Window_BorderLess)
  SetWindowColor(#Windows, #Black)
  OpenGLGadget(#OpenGLGadget, 0, 28, WindowWidth(#Windows), WindowHeight(#Windows) - 28, #PB_OpenGL_Keyboard)
 
  ;Titre()                                ; affiche code RGBA couleur sur windows(0) et OpenGLGadget plus bas de 28 pixels                                                     
                                         ; pour afficher le titre direct sur OpenGLGaget mettre Titre() dans la boucle repeat et modifier X et H d' OpenGLGadget
 
  SetActiveGadget(#OpenGLGadget)         ; Focus OpenGlGadget
 
  Repeat
   
    Titre()                             ; affiche code RGBA couleur sur OpenGLGadget avec delay pour syntillement pour cela modifier taille et emplacement d'openGLGadget
   
    Event = WindowEvent()
   
    If EventType() = #PB_EventType_KeyDown
      Keyf = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Modifiers)
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)
     
      If Keyf = #PB_OpenGL_Control
        If key = #PB_Shortcut_R : Debug "ctrl + R": EndIf         ; mode combinaison avec controle + r
      Else
        If key = #PB_Shortcut_R : Debug "r": EndIf                ; mode touche r
      EndIf
     
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : help() : Opengl_Key_Pause() : EndIf
     
    EndIf
    SetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_FlipBuffers, #True)
   
  Until  key = #PB_Shortcut_Escape
 
EndIf

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

voila la modif de fin de code pour avoir tout le texte sur l' OpenGLGadegt

Code : Tout sélectionner

ligne
ligne 69 ;OpenGLGadget(#OpenGLGadget, 0, 28, WindowWidth(#Windows), WindowHeight(#Windows) - 28, #PB_OpenGL_Keyboard)
ligne 70  OpenGLGadget(#OpenGLGadget, 0, 0, WindowWidth(#Windows), WindowHeight(#Windows), #PB_OpenGL_Keyboard)
  
ligne 72  ;Titre()                                ; affiche code RGBA couleur sur windows(0) et OpenGLGadget plus bas de 28 pixels                                                     
                                         ; pour afficher le titre direct sur OpenGLGaget mettre Titre() dans la boucle repeat et modifier X et H d' OpenGLGadget
  
ligne 79     Titre()                             ; affiche code RGBA couleur sur OpenGLGadget avec delay pour syntillement pour cela modifier taille et 
Dernière modification par kernadec le mer. 09/déc./2020 14:05, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

Marche pas :oops:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte sur du openGL

Message par kernadec »

avec cette méthode, tu peux aussi utiliser les fonction gradient etc
et avec des police graphique de chez "dafont" sans arriérè plan
top pour une présentation...

bon je te met le code qui fonctionne chez moi texte sur opengl via StartDrawing(WindowOutput(#Windows))

Code : Tout sélectionner

;##################################################################
;  Ecriture sur window(0) qui apparait sur OpenGLGadget
;##################################################################

Enumeration
  #Windows
  #Openglgadget
EndEnumeration

#fond = 0               ; couleur de fond de la fenetre
#ligne = 20             ; Taille format saut de ligne avec Drawtext
#DecaleText_X = 300     ; valeur de la position X du texte sur OpengelGadget
#DecaleText_Y = 28      ; valeur de la position Y du texte sur OpengelGadget
#DecaleTitre_X = 400    ; valeur de la position X du Titre sur la Fenetre 0
#DecaleTitre_Y = 12     ; valeur de la position Y du texte sur la Fenetre 0


Procedure Opengl_Key_Pause()
  key = 0
  Repeat
    Event = WaitWindowEvent()
    If EventType() = #PB_EventType_KeyDown
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)   
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : EndIf  ;#PB_Shortcut_Space
    EndIf
  Until key = #PB_Shortcut_Space
EndProcedure

Procedure help()
  StartDrawing(WindowOutput(#Windows))
  ;Box(WindowWidth(0) - #DecaleText_X, WindowX(0) +  #DecaleText_Y-1, 265, 360, #Red)   ; #DecaleTitre_X - 180, #DecaleTitre_Y
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 0  , "' 1 >< 2 ' = Rouge + 0.01 / Rouge - 0.01"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 1  , "' 3 >< 4 ' = Vert     + 0.01 /  Vert     - 0.01" , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 2  , "' 5 >< 6 ' = Bleu    + 0.01 /  Bleu    - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 3  , "' + >< -  ' =  Alpha  + 0.01 /  Alpha  - 0.01"   , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 4  , "' 7 ' = Rouge 0.5  "                             , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 5  , "' 8 ' = Vert    0.5  "                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 6  , "' 9 ' = Bleu   0.5  "                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 7  , "' * ><  /  ' =  Alpha  /  NO Alpha"              , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 8  , "' p ' = Piquer Couleur sur image de Fond"        , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 9  , "' h ' = Active/Desactive dernier 'Triangle'"     , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 10  , "' m ' = Model ON/OFF"                           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 11  , "' k ' = Kill le dernier Polygone"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 12  , "' i ' = Afficher l'image de fond"               , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 13  , "' c ' = Continuer sur un Model"                 , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 14  , "' z ' = Zoom ON/OFF"                            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 15  , "' a ' = Tout mettre en Alpha ON/OFF"            , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 16  , "' F1 ' = Couleur précédente en memoire"         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 17  , "' F2 ' = Couleur suivante en memoire"           , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 18  , "' F3 ' = Model précédent"                       , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 19  , "' F4 ' = Model suivant"                         , #White , fond)
  DrawText(WindowWidth(#Windows) - #DecaleText_X, WindowX(#Windows) +  #DecaleText_Y + #ligne * 20  , "' F5 ' = Sauve les polygones"                   , #White , fond)
  StopDrawing()
  Delay(25)
EndProcedure

Procedure Titre()
  StartDrawing(WindowOutput(#Windows))
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X, WindowX(#Windows) + #DecaleTitre_Y  , "                                                                                                                 ", #Black, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X -  40, WindowX(#Windows) + #DecaleTitre_Y  , "RVBA( " + Str(rouge * 255) + " , " + Str(vert * 255) + " , " + Str(bleu * 255) + " , " + Str(alpha * 255) + " )" , #White, fond)
  DrawText(WindowWidth(#Windows) - #DecaleTitre_X + 100, WindowX(#Windows) + #DecaleTitre_Y  , "AIDE = Touche Espace ON / OFF" , #Green, #Black)
  StopDrawing()
  Delay(25)
EndProcedure

If OpenWindow(#Windows, 0, 0, DesktopResolutionX(), DesktopResolutionY(), "", #PB_Window_Maximize|#PB_Window_BorderLess)
  SetWindowColor(#Windows, #Black)
  ;OpenGLGadget(#OpenGLGadget, 0, 28, WindowWidth(#Windows), WindowHeight(#Windows) -28, #PB_OpenGL_Keyboard)
  OpenGLGadget(#OpenGLGadget, 0, 0, WindowWidth(#Windows), WindowHeight(#Windows), #PB_OpenGL_Keyboard)
  
  ;Titre()                                ; affiche code RGBA couleur sur windows(0) et OpenGLGadget plus bas de 28 pixels                                                     
  ; pour afficher le titre direct sur OpenGLGaget mettre Titre() dans la boucle repeat et modifier X et H d' OpenGLGadget
  
  SetActiveGadget(#OpenGLGadget)         ; Focus OpenGlGadget
  
  Repeat
     Titre()                             ; affiche code RGBA couleur sur OpenGLGadget avec delay pour syntillement pour cela modifier taille et emplacement d'openGLGadget

    Event = WaitWindowEvent()
    
    If EventType() = #PB_EventType_KeyDown
      Keyf = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Modifiers)
      key = GetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_Key)
      
      If Keyf = #PB_OpenGL_Control
        If key = #PB_Shortcut_R : Debug "ctrl + R": EndIf         ; mode combinaison avec controle + r
      Else
        If key = #PB_Shortcut_R : Debug "r": EndIf                ; mode touche r
      EndIf
      
      If key = #PB_Shortcut_Escape : End : EndIf
      If key = #PB_Shortcut_Space  : help() : Opengl_Key_Pause() : EndIf
      
    EndIf
    SetGadgetAttribute(#OpenGLGadget, #PB_OpenGL_FlipBuffers, #True)
    
  Until  key = #PB_Shortcut_Escape
  
EndIf
Dernière modification par kernadec le mer. 09/déc./2020 19:28, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Texte sur du openGL

Message par SPH »

je te met le code qui fonctionne chez moi texte sur opengl
Pas chez moi, désolé ! (écran noir)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre