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 :

[Win32] Swap


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut [Win32] Swap
    Par défaut, la fonction Swap de l'API copie le back buffer vers le front buffer. Effectivement en mode fenetré on a pas trop le choix. Mais en mode plein écran ? il existe le flag PFD_SWAP_EXCHANGE spécifiable pour le mmembre flag de la structure PIXELFORMATDESCRIPTOR. Seulement, il faut appeller glAddSwapHintRectWIN, qui n'est pas facile a trouver, qui n'existe pas dans toutes les implémentations d'OpenGL, et même, ca marche pas (La lenteur de l'opération de swap en est preuve). D'où ma question, comme faire pour que le swap se fasse par échange et pas par copie ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Vous ne pensez pas que je devrais regarder le source d'un outil ou d'une application quelconque qui le fait bien ? si oui laquelle ?

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    désolé je peut vraiment pas t'aider j'y connait rien en win32 mais sinon l'idée de regarder ce qui existe a coté est très bonne c'est comme ca qu'on progresse... mais la non plus je peut pas t'aider... bon allez bon week end
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    lool, merci Bafman

  5. #5
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    j'ai bien une solution mais elle peut etre lente : si j'ai bien compris tu veux basculer le contenu du front buffer ds le back buffer et vice versa , il existe une implentation opengl qui permette de copier les tampons , par contre je ne peux psa tellement t'en dire plus , il fauderais peut etre plus de detail

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Non, justement je ne veux pas ca. Avtuellement, c'est windows qui copie le back buffer vers le front buffer. Techniquement, le swap peut se faire par échange, c'est qui est bien plus rapide, et significatif. Le problème c'est que je n'y arrive pas.

  7. #7
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    euh en delphi j'utilise l'instruction swapbuffer
    ca peut etre ca ?

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    LA fonction SwapBuffers, appartient à l'API win32, et c'est la fonction que j'utilise. Mais le problème est bien que cette fonction copie le back buffer vers le front buffer, ce qui est très couteux

  9. #9
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    tu m'aprends quelque chose , je ne peux pas vraiment t'aider , mais je suis preneur de toute solution a ce probleme

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Citation Envoyé par msdn
    Note The SwapBuffers function does not really swap the contents of the two buffers, but rather copies the contents of one buffer to another. The contents of the off-screen buffer are undefined after a call to SwapBuffers. Thus, the result of two consecutive calls to SwapBuffers is undefined.
    apparement l'API ne couvre pas ca. Une autre idée ?

  11. #11
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    heu... utilise GLUT ou SDL
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    GLUT fait pareil. GLUT utilises effectue le swap par copie et non par échange. SDL, j'ai pas encore regardé. Le temps que demande une copie de buffer n'est vraiment pas négligeable dans une application OpenGL.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Par défaut
    Salutations,

    Pour l'avoir utilisée, suit le conseil de bafman : utilise la SDL, en plus t'aura acces a toutes les interfaces (son, rezo, etc.) plateform FREE...
    je n'ai pas rencontré ce pb avec. et oublie les trucs-machin-api-special-win-qui-marchent-que-sous-win.

    (ignore mon message sur [developpement WIN32])

    voilavoila

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    La SDL ne m'interesse pas. Là je cherche une solution à CE problème. Enfin, merci tout de même. (De plus, il faudrait que je vérifie que la SDL fait bien ce que je veux)

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Par défaut
    Au fait en passant, t'as essayé PFD_SWAP_COPY ?

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    Non, c'est l'opération par défaut quand on appelle pas glAddSwapHintRectWIN.

  17. #17
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    L'adresse que l'on m'a donnée est : "http://oss.sgi.com/projects/ogl-sample/registry/ARB/wgl_pixel_format.txt"

    c'est une extension d'OpenGL. La liste :

    http://oss.sgi.com/projects/ogl-sample/registry/index.html

    donc, je vais essayer ca.

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    quelqu'un sait comment ca marche ??

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. gcc et win32
    Par MatRem dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 16/01/2003, 12h22
  3. [API win32] Récupérer le répertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h38
  4. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34
  5. swapping entre processeurs
    Par shef dans le forum MFC
    Réponses: 5
    Dernier message: 26/08/2002, 14h20

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