Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 12 sur 12
  1. #1
    Futur Membre du Club
    Homme Profil pro LoveMetal
    Inscrit en
    janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme LoveMetal
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 30
    Points : 16
    Points
    16

    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
    Rédacteur
    Avatar de mitkl
    Homme Profil pro Timothée Bernard
    Étudiant
    Inscrit en
    février 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Nom : Homme Timothée Bernard
    Âge : 22
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2010
    Messages : 365
    Points : 1 123
    Points
    1 123

    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
    Futur Membre du Club
    Homme Profil pro LoveMetal
    Inscrit en
    janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme LoveMetal
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 30
    Points : 16
    Points
    16

    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 Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 134
    Points : 13 093
    Points
    13 093

    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
    Rédacteur
    Avatar de mitkl
    Homme Profil pro Timothée Bernard
    Étudiant
    Inscrit en
    février 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Nom : Homme Timothée Bernard
    Âge : 22
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2010
    Messages : 365
    Points : 1 123
    Points
    1 123

    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 :
    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 Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 469
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 14 469
    Points : 68 243
    Points
    68 243

    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
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

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

  7. #7
    Futur Membre du Club
    Homme Profil pro LoveMetal
    Inscrit en
    janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme LoveMetal
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 30
    Points : 16
    Points
    16

    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 Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    14 469
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 14 469
    Points : 68 243
    Points
    68 243

    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
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

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

  9. #9
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 134
    Points : 13 093
    Points
    13 093

    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
    Futur Membre du Club
    Homme Profil pro LoveMetal
    Inscrit en
    janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme LoveMetal
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 30
    Points : 16
    Points
    16

    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 Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 134
    Points : 13 093
    Points
    13 093

    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
    Futur Membre du Club
    Homme Profil pro LoveMetal
    Inscrit en
    janvier 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Nom : Homme LoveMetal
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 30
    Points : 16
    Points
    16

    Par défaut

    Merci, je prends note !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •