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

Bibliothèques, systèmes et outils C Discussion :

Bibliothèque graphique C


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 30
    Points : 27
    Points
    27
    Par défaut Bibliothèque graphique C
    Bonjour à tous,
    Je me demandais si vous ne connaîtriez pas une bibliothèque graphique qui remplit les critères suivants :
    • La possibilité d'enlever les bordures et les barres de titres aux fenêtres ;
    • La possibilité d'avoir une fenêtre de forme spéciale ;
    • La possibilité d'afficher du texte à l'écran ;
    • Une portabilité sous Linux et Windows ;
    • [Facultatif] Des fonctions permettant de lire des musiques (possible aussi avec un module de cette bibliothèque).


    Voici un programme résumant assez bien ce que je veux : Thêta NFO Viewer.
    PS : Ce programme ne contient pas de virus, contrairement à ce que vos antivirus peuvent vous dire (il me semble que c'est parce que l'utilitaire se chargeant de décompresser l'exécutable s'autodétruit après l'exécution).

    Merci d'avance de vos réponses !

  2. #2
    Membre éprouvé
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Points : 1 081
    Points
    1 081
    Par défaut
    SDL remplit parfaitement toutes ces fonctions et même la musique avec SDL_mixer bien que ça soit limité au format wav.
    Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase.

    Mon blog sur la programmation et l'informatique !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Malheureusement non, la SDL ne permet pas d'avoir une fenêtre de forme spéciale, ou alors je n'ai toujours pas trouvé.
    En plus SDL_Mixer n'est pas limité au wav, c'est SDL_Audio qui l'est.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    X11 et la Xlib (de base sous unixoide, et aussi sous cygwin pour Win)

    Un niveau au dessus : GTK, wxwidgets, lesstiff, motif..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre éprouvé
    Avatar de mitkl
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 364
    Points : 1 081
    Points
    1 081
    Par défaut
    Mea culpa pour le manque de précision mais si tu veux faire une fenêtre de forme spéciale, il va falloir la coder soit-même !

    A l'initialisation tu as SDL_SetVideoMode,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface *SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags);
    dans les valeurs que prend Uint32 flags, on retrouve :
    - SDL_HWSURFACE pour créer ton SDL_Surface dans la mémoire vidéo.
    - SDL_FULLSCREEN pour être en mode plein écran.
    - etc.

    Et enfin, on a SDL_NOFRAME qui va créer une fenêtre sans bordure ni barre de titre.

    A partir de ce moment là, tu définis deux zones, l'une se situant dans l'autre : l'intérieur et l'extérieur. Pour ta zone extérieure qui remplace désormais la bordure, tu charges et tu affiches ta nouvelle bordure comme n'importe quelle image. Ne pas oublier d'inclure un bouton "Fermer" mais là c'est une gestion d'évenement banale : une image, des coordonnées et un click de souris.

    Finalement, la zone intérieure, celle où le jeu se produit, la seule difficulté est qu'à présent, l'origine de la fenêtre n'est plus (0, 0) mais (largeur_bordure, hauteur_bordure).

    En espérant avoir été plus clair,
    Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase.

    Mon blog sur la programmation et l'informatique !

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Qt permet de faire tout cela, par contre, c'est en C++
    La SDL, c'est un peu trop violent et ne donne pas assez de contrôle sur le fenêtrage.
    Un moment, je pensais que les NFO Viewer était fait directement en WinAPI, il faudrait que je me renseigne (surtout que si c'était du Qt, ça serait pas aussi léger ).

    Pour la musique, je conseillerai FMod, ou Bass.

    Le NFO Viewer, est considéré comme virus soit :
    - Un compresseur d'exécutable a été utilisé et que c'est la méthode la plus simple pour cacher un code à un antivirus, donc par précaution, on le considérera comme virus.
    - (Mode paranoïaque ) Parce que cela arrange certaine entreprise que se soit le cas
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Merci à tous pour vos réponses rapides !



    Citation Envoyé par souviron34
    X11 et la Xlib (de base sous unixoide, et aussi sous cygwin pour Win)
    La Xlib n'est pas la bibliothèque chargée de configurer le serveur X sous Linux ? Si c'est le cas je n'ai pas envie de coder le même programme avec 2 bibliothèques différentes sous Windows et Linux (sauf en dernier recours), bien qu'il soit possible de configurer un serveur X sous Windows, ayant utilisé Blackbox sous mon feu Windows XP.



    Citation Envoyé par mitkl
    [...]
    Désolé mais tu t'es encore planté. La SDL ne permet pas la transparence de l'arrière plan des fenêtres, un fond noir bien dégueu se blitte à la place.



    Citation Envoyé par LittleWhite
    La SDL, c'est un peu trop violent et ne donne pas assez de contrôle sur le fenêtrage.
    Un moment, je pensais que les NFO Viewer était fait directement en WinAPI, il faudrait que je me renseigne (surtout que si c'était du Qt, ça serait pas aussi léger ).
    Justement, j'ai fouillé un peu et j'ai trouvé ceci, et ça m'inquiète pas mal...

    Citation Envoyé par LittleWhite
    Pour la musique, je conseillerai FMod, ou Bass.
    J'utilise FMod pour mes programmes, mon seul regret étant que cette bibliothèque ne soit pas libre.

    Citation Envoyé par LittleWhite
    Le NFO Viewer, est considéré comme virus soit :
    - Un compresseur d'exécutable a été utilisé et que c'est la méthode la plus simple pour cacher un code à un antivirus, donc par précaution, on le considérera comme virus.
    Je ne pense pas, plein d'installateurs personnalisés décompressent leurs programmes à l'exécution (comme le framework .NET ou Adobe Reader) et les antivirus ne disent rien. Je pense plutôt que si nombres de demos, cr*cks et k**g*ns sont bloqués c'est par la simple raison que les utilitaires chargés de les décompresser s'autodétruisent à l'exécution, du coup ils sont considérés comme bombes de décompression par nos chers antivirus (Comodo me sonne à chaque fois que je touche à kkrunchy ou à crinkler)...

    Au fait, tu ne serais pas LittleWhite de nectarine radio ? Le LittleWhite !?
    Modo de deux supers forums, c'est prestige ça !

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pour la SDL, je suis quasi sur que ce n'est pas possible.
    Avez Qt, cela ne semblait pas direct ( http://qt.developpez.com/tutoriels/b.../customwindow/ ). Et comme vous demandez pour du C, je dois dire que cela ne répondais pas à la question.

    Pour FMod, oui ce n'est pas très ouvert, mais utilisable pour des applications non commerciales. Et puis c'est portable (quoique, maintenant BASS est devenu compatible avec Linux). Le second avantage c'est qu'il existe une version légère de FMod. Pourquoi je parlais de FMod ou BASS car ce genre de programme lisent des fichiers .xm (ou .mod mais plus rare), qui sont plus léger que les MP3.
    D'ailleurs, pour en revenir à la musique, un NFO Viewer récent utilisait une musique d'une vieille demo Amiga, mais je n'ai pas su la reconnaitre ... pourtant je suis sur que je l'avais entendu sur Nectarine. Et là, je réponds à la dernière question .

    D'après la Wikipedia une bombe de decompression est un programme qui décompresse en mobilisant trop de ressources. Quelques informations supplémentaires disponible ici : https://en.wikipedia.org/wiki/Zip_bomb . Les antivirus reconnaissent qu'il y a utilisation de Crinkle ou autre (UPX aussi) qui entre autre permettent de cacher l'application finale. Comme les installateurs plus officiels n'utilisent pas le même genre de compression (.cab pour les installateurs Microsoft, souvent (qui d'ailleurs, sont une reconversion du .lzx crée pour l'Amiga )), du coup les antivirus ne les mettent pas en liste rouge immédiatement (et puis, ça ne cache pas trop les données).
    Et oui, les algos utilisées dans Crinkler prennent énormément de ressources ...

    Finalement, pour revenir au sujet initial, il ne se peut pas que ce soit une copie de ce qu'il y a derrière la fenêtre, sinon le déplacement d'une fenêtre deviendrait problématique. Du coup, il faut laissé ce genre de chose pour le système. Comme la WinAPI est la bibliothèque la plus proche de Windows pour le fenêtrage, il est surement possible de le faire avec. Par contre je n'ai jamais vu de MusicDisk sous Linux avec un fenêtrage personnalisé ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Anarchy64 Voir le message
    La Xlib n'est pas la bibliothèque chargée de configurer le serveur X sous Linux ? Si c'est le cas je n'ai pas envie de coder le même programme avec 2 bibliothèques différentes sous Windows et Linux (sauf en dernier recours), bien qu'il soit possible de configurer un serveur X sous Windows, ayant utilisé Blackbox sous mon feu Windows XP.
    Pas de configurer le serveur X, de dialoguer avec lui..

    C'est la bibliothèqye graphique de base.

    Comme le dit LittleWhite pour Windows, pour faire proprement ce que tu veux, il y a soit l'API Win32 pour Windows, soit X et la Xlib pour les autres sytèmes..

    Tous les "widgets" graphiques de GTK, xwidgets, SDL, etc, utilisent en base l'un ou l'autre..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Bon ben finalement ce sera API Win32 pour la version Windows et Xlib pour Linux.
    Merci encore pour vos réponses.

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    A noter qu'avec la Xlib (qui est la base la plus basse) tu pourras aussi te servir de la XToolkit (Xt), qui est fournie avec, et qui intègre les concepts de Widget, donc un peu plus élaborée, tout en ayant besoin de la Xlib en même temps..

    En fait sous X le modèle est en couche :

    • la couche la plus basse est la Xlib (concept de fenêtre virtuelle)
    • puis la Xtoolkit (concept de widget)
    • puis les diverses couches de Widgets (Motif ou lesstiff, wxwidgets, GTK widgets, SDL widgets, Qt widgets...) (implémentations diverses du concept)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Merci, je prends note !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. bibliothèque graphique C
    Par stokastik dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 02/11/2006, 11h26
  2. [Artichow] Bibliothèque graphique ARTICHOW
    Par tissard dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/06/2006, 18h14
  3. [GD] Chargement des bibliothèques graphiques
    Par JavaAcro dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/05/2006, 22h19
  4. Bibliothèque graphique !?
    Par roxxor31 dans le forum Graphisme
    Réponses: 12
    Dernier message: 15/05/2006, 12h19

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