1

Bonjour,

Je souhaite faire une interface graphique un peu spéciale en C ou C++
Elle ne doit pas contenir des tas de trucs, mais plutôt être super flexible.
Par exemple, je souhaite pouvoir incliner facilement toute mon interface (rotation) et que les boutons interagissent correctement, définir des boutons personnalisés, etc...
Il faudrait aussi que je puisse écrire des intéracteurs propres à mon application (par interacteur habituels, j'entends les listes à puce, les scrollbar...).

Qu'est-ce que vous en pensez?
Qt, SDL, OpenGl, GTK+ ?

2

Avec la SDL tu pourras faire facilement des rotations, par contre tout le reste tu vas te le taper à la main.

3

essais de trouver des code source de cracktro, en gdi classique tu pourra faire tout ca
et la le mec il le pécho par le bras et il lui dit '

4

GLAM smile

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

5

GDI c'est l'interface normale sous windows, c'est ça? Il doit y avoir des solutions plus portables...
GLAM ça a l'air d'être pas mal, c'est facile à utiliser (par rapport à Qt) ? L'api est simple ou il faut utiliser plein de lignes de code?

GLUI et GLOW, c'est de bonnes librairies?

6

Vous pouvez en dire un peu plus sur la façon d'utiliser GDI?
Est-ce qu'on peut l'utiliser tout seul, ou est-ce qu'il permet de faire des améliorations sur une interface graphique générée avec une autre lib?
J'ai regardé vite fait mais j'ai pas bien compris. Et est-ce qu'il gère les boutons et autres controlleurs?

Sinon j'ai trouvé ça mais je pense que ça marche que sous Unix (c'est dommage ça a l'air super sympa) :
http://www.freedesktop.org/wiki/Software/CompositeExt

Enfin je peux toujours installer un serveur X, mais bon, si je commence mon programme par un hack, on est pas rendus...

7

GDI n'est pas une bonne solution : ça n'existe que sous Windows, et c'est vraiment vieillissant (les bases viennent de Windows 2.0...), bref pas adapté à ce que tu veux faire.

Si te limiter à Windows ne te dérange pas, peut être que WPF pourrait convenir, mais à vrai dire je n'en sais rien vu que je ne l'ai jamais utilisée.
!call GoldenCrystal
--- Call : GoldenCrystal appelé(e) sur ce topic ...

(il pourra probablement répondre)

Je n'ai pas utilisé non plus GLAM et les autres, donc je ne peux pas en dire grand-chose, mais ça me semble plus approprié à ton problème.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

8

Oui, WPF correspondrait parfaitement au point de vue interface pure, mais je n'avais pas posté ici car gon33 veut coder en C/C++ et j'avais eu l'impression qu'il voulait un truc multi-plateforme. Le problème de WPF c'est qu'il ne fonctionne qu'en .NET (donc à la rigueur, en C++/CLI, mais c'est pas top, pour du WPF) et plutôt en C# quand même…
Quand à un truc réellement utilisable en C++, il existe GDI+… Mais ce n'est pas pour l'interface, juste pour le dessin…
(Le reste je ne connais pas trop (ou pas du tout), je me contente aux trucs « standards » et si possible sous Windows. (À la limite OSX))
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

9

gdi est peu être obsolète mais quant tu voit des chose comme ca :

ben je me dis que c'est les codeurs qui le sont embarrassed

edit > vous remarquerez que le serial fini toujours par ⑲⑪ happy
et la le mec il le pécho par le bras et il lui dit '

10

Bah, je ne vois rien qui soit une prouesse en GDI là dedans ^^
Le graphisme est joli, mais les régions et les courbes de bezier, ça existe depuis un certain temps (enfin les bezier un peu moins ^^). D'ailleurs y'a peut-être même un peu de GDI+ là dedans (mais je fume pas de crack alors je ne m'avancerai pas trop) (En fait le plus impressionnant c'est le mec qui a du se faire chier à coder les paramètres de l'animation… si c'est bien ainsi qu'il a procédé…)
En tout cas oui GDI est obsolète: Les rotations, mises à l'échelle, etc. tu oublies wink
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

11

moi je fume pas de crack non plus mais je m'avance tongue en général les cracktro sont faite en gdi après + ++ ou encore ² ou -- j'en sais rien happy

moi je vois que la fenêtre peu être complètement transparente et contiens ce que l'on veut, et encore j'en ai déjà vu avec de l'alpha ou transformation de la fenêtre en ligne qui se déplace et change de taille jusqu'à disparaitre, bref on est 100% libre, après certainement il faut un peu faire le travail à la main, mais sans sueur pas de bonheur (expression sous creative common by-nc-sa)

sinon, si qq connais d'ou est tiré cette zique connue par tous mais que je ne reconnais pourtant pas, ca m'intéresse happy

ha bah réponse de ma chérie, le roi lion, 'il en faut peu pour être heureux, il faut se satisfaire du nécessaire'

ben je pense pareil un framebuffer transparent, que demande le peuple ?

et la le mec il le pécho par le bras et il lui dit '

12

Les fenêtre non rectangulaires c'est géré depuis Win95 et c'est relativement facile à faire, ouais smile
GoldenCrystal (./10) :
En tout cas oui GDI est obsolète: Les rotations, mises à l'échelle, etc. tu oublies wink.gif
Pas tout à fait vrai, c'est supporté mais uniquement sur des images statiques, et la qualité est couic

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

13

Ah, avec quelle fonction tu fais tourner une image ? Car StretchBlt pour la mise à l'échelle ok mais de toutes façons c'est du nearest neighbor... Et y'a aucun aa.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

14

GoldenCrystal (./8) :
Quand à un truc réellement utilisable en C++, il existe GDI+, Mais ce n'est pas pour l'interface, juste pour le dessin¦


Tu veux dire qu'en GDI+ on ne peut pas faire de boutons?

15

avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

16

./14 > Ben non. GDI, plus ou pas plus ça reste du dessin. L'interface de Windows c'est du User32 (fortement lié à GDI) ou du WPF. Les autres API comme MFC (C++) ou Winforms (C#) sont basés sur User32, soit en GDI, soit en GDI et GDI+ (Les deux sont compatibles jusqu'à un certain degré). Et les trucs non standard sont essentiellement basés sur une API graphique quelconque (et éventuellement avec une interaction avec User32 a un degré variable) mais au final tout finit toujours par passer par un des API standard de Windows.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

17

Hum. Le pb c'est que je connais pas le C#, je peux toujours apprendre mais ça va prendre du temps.
Si je passe par MFC, je peux utiliser les fonctionnalités de WPF pour faire la rotation de mon interface?
Vous savez si c'est portable sur linux via Mono?

Bon, je sens qu'il va falloir que je mette les mains dans le cambouis pour tester tout ça

18

Non, MFC c'est du User32 en version objet (en gros) C++.
WPF c'est basé sur milcore (API privé) qui est lui-même basé plus ou moins directement sur Direct3D9. (ou équivalent bas niveau)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

19

./13 : il me semblait qu'il existait un moyen de faire des rotations, mais je me trompe peut-être...

Pour ce qui est du nearest neighbour, je n'ai pas dit le contraire, cf. :
Zerosquare (./12) :
la qualité est couic.gif
wink
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

20

Mouais, donc soit je passe par GLAM, soit par WPF, soit par la SDL.
Question technique : on peut utiliser une bibliothèque C en C#? Je pense qu'il s'agit d'une lib dynamique...

21

Heu mais SDL ce sera la même chose que GDI, c'est fait pour le graphisme, non ? (GLAM je connais pas mais ça semble te correspondre si j'ai bien compris)
Et il est bien évidemment possible d'appeller des fonctions C en C#... Pour les plus doues, la fonction peut même être intégrée directement dans l'assembly... Par contre c'est pas portable.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

22

La SDL ne fait que coller des images dans une fenêtre, après tu te démerdes de tout le reste (boutons etc...)

23

Il y a pas mal d'extensions pour SDL (comme SDL_image pour gérer différents formats d'image, etc.), peut-être que l'une d'entre elles permet de faire des GUI facilement.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

24

Quelqu'un a déjà utilisé GLAM?
Le dépôt pour linux est en 32 bits (ubuntu le refuse), et j'ai des problèmes pour le compiler en 64 bits (et encore plus sous windows...).

Le ./configure me sort :
checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized guess

J'ai essayé de changer les fichiers config.guess et config.sub, mais ça n'a pas marché...

25

Zerosquare (./23) :
Il y a pas mal d'extensions pour SDL (comme SDL_image pour gérer différents formats d'image, etc.), peut-être que l'une d'entre elles permet de faire des GUI facilement.

La SDL ne gère que les BMP, SDL_Image gère aussi TIFF, PNG et autres.

Il y a SDL_GFX qui fournit des primitives, pourquoi pas regarder la doc, je ne sais plus s'il y est question de rotations. De toute façon, c'est pas bête de se pencher sur les extensions.

26

Sinon tu peux toujours essayer CEGUI, c'est une surcouche à SDL et OpenGL, par contre pas de rotation d'IHM. Et c'est fenêtré, par directement sur le bureau de Windows, donc tu auras une barre de titre, toussa...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

27

Après un peu de recherche pour utiliser GLAM en 32 bits en utilisant les paquets debian (précompilé donc), je me rends compte qu'il faut avoir le fichier "libOGLFT.so" sur l'ordinateur, introuvable sur internet. Le paquet fourni sur le site de Sugar est cassé (lien vers une lib inexistante à l'intérieur du paquet)...
Par ailleurs, je ne peut pas compiler les sources en 64 bits à cause des scripts configure. Je crois que Glam est obsolète, d'autant qu'on n'en trouve quasiment aucun écho sur la toile...

Par contre, j'ai un ami qui m'a fait une petite démo de rotation d'interface en C# (WPF), ça a l'air sympa mais comme c'est une fonction préfabriquée je sais pas si on peut activer un antialiasing...

28

Je ne vois pas ce que tu veux dire par « préfabtiqué », mais normalement, WPF est totalement filtré et anti-aliasé, et il n'y a pas à ma connaissance de moyen de faire sans. Par contre tu peux aligner certains objets sur la grille de pixels pour avoir des lignes nettes si besoin est. (C'est utile pour un mapping 1:1 à résolution native, mais dès que tu fais des rotations et mises à l'échelle, ça ne sert plus à grand chose)
Toute l'animation et l'apparence des contrôles peut être entièrement définis en XAML (mais aussi en C# si besoin… Le XAML reste le moyen préférable en dehors des cas particuliers), l'apparence des contrôles pouvant bien sûr inclure des transitions d'état animées (passage d'une couleur à une autre, grossissement, rotation à 360°, …).
Y'a une version « portable » si besoin (les concepts sont similaires ou identiques, ça dépend des endroits), mais ça s'appelle Silverlight (ou Moonlight, avec 1 ou 2 versions de retard), et c'est plutôt orienté Web. Cela dit si tu peux transformer ton application derrière en service Web, et apeller ce même service via Silverlight sur une plateforme quelconque, ça peut peut-être t'intéresser… (Je trouve ça overkill et un peu crade comme manière de procéder, mais sait-on jamais…)
Après, ça reste encore et toujours du .NET donc ça ne doit pas tout à fait correspondre à ce que tu recherches.

Sinon sur Mac, l'interface utilisateur offre quelques possibilités assez similaires à WPF (mais ça reste plus limité) si jamais, mais je pense que tu t'en fous complètement grin
Et sous Linux, hmm bah je suppose qu'il y a moyen de faire des trucs en vectoriel vu que KDE4 l'a fait… Mais est-ce qu'ils ont réellement codé des contrôles vectoriels, ou est-ce que le SVG c'est fait pour décorer, ça je n'en sais rien… Faut regarder dans la doc de Qt. (Au passage Qt est vraiment 100% C++ (moyennant les fichiers spécifiques à Qt dont il ne faut pas me demander l'utilité grin) et « portable » partout. Cependant, tu dois distribuer ton code sous GPL pour pouvoir utiliser Qt gratuitement)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

29

GoldenCrystal (./28) :
Cependant, tu dois distribuer ton code sous GPL pour pouvoir utiliser Qt gratuitement

Nop, ce n'est plus le cas depuis un bout de temps, puisque Qt est dispo en LGPL depuis la version 4.5.
So much code to write, so little time.

30

Ah… Ok si tu le dis tongue
(La dernière fois que je m'y suis intéressé c'était y'a deux ans ^^)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes