Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Graphisme 2D Plein écran avec Window [ Divers / Débutant(e) ] (epineurien)

lundi 5 novembre 2007 à 13:43:48 | Graphisme 2D Plein écran avec Window

epineurien

Bonjour !

Voilà , j'ai un problême tout simple : je veux faire une application (qui utilise les api-window au passage) qui puisse passer en plein écran (dans la résolution de mon choix) et afficher un pixel là où j'en ait envie . (A priori rien d'insurmontable) .

Problêmes :
**Avec user32/gdi32 (truc de base quoi) : 
-j'arrive juste à faire une fenêtre de la taille voulue (via CreateWindowEx) mais pas en plein écran .
-j'arrive pas a faire fonctionner SetPixel dessus , même en ayant récupérer le DeviceContext via GetDC,Handle-de-la-fenetre .

**Avec openGL / directdraw :
-Ca part tout de suite dans des trucs de folie avec des vertexs , des backbuffer et d'autre trucs dont j'ai absolument pas besoin .

Donc je voudrais :
-Une API (ou n'importe quoi) : qui me permettent de passer en plein écran (comme avec ces bonnes vieilles fonctions VESA ).
-Un moyen d'accéder à la mémoire vidéo , ou n'importequoi d'autre du moment que je peut placer un satané pixel aux coordonnées
X,Y (comme avec le es:di avec VESA ou alors un truc du genre SetPixel , mais qui fonctionne) .

Tout le reste : fonctions 3d , matrice de rotation , calcul d'illumination , remplissage de feuille d'impot ,.... je peut (et surtout je veux) m'en charger tout seul , mais pour ca il faut pouvoir afficher quelquechose à l'écran (juste un pixel , rien qu'un , par pitié) .

Donc voilà , ca fait des jours que je cherche et je que suis au bord de la crise de nerf  .
Alors si quelqu'un à la solution , ou une adresse de site ...





lundi 5 novembre 2007 à 14:44:25 | Re : Graphisme 2D Plein écran avec Window

_dune2_

Membre Club
Salut,


tu peux regarder du coté de l'API SDL (Simple Direct media Layer) qui permet entre autre de gérer des surfaces qui peuvent être fullscreen ou non et qui permet d'accéder aux pixels de manière simple. De plus, ce toolkit est multi-plateforme, ce qui te permettra de rendre ton code ouvert à tout le monde et non réservé à windows (sauf si ensuite tu fais des appels systèmes windows, mais même dans ce cas, SDL te permettra de gérer facilement la partie graphique).

[ Lien ]

et un tutos de code sources ;) :
http://www.cppfrance.com/codes/TUTORIAL-INITIATION-SDL_37172.aspx

Gentoo... que du bonheur ...

lundi 5 novembre 2007 à 17:00:28 | Re : Graphisme 2D Plein écran avec Window

Nasman

Bonjour epineurien,

Je ne sais pas si celà répond à ton problème mais regarde une de mes sources, elle a été faite pour ceux qui débutent avec le graphisme sous windows.
Il faut à priori créer un contexte GDI avec BeginPaint lors de l'emission du message WM_PAINT et redessiner le contenu du dessin.

http://www.asmfr.com/codes/CREATION-GRAPHIQUES-AVEC-API-WINDOWS_34529.aspx

Le programme est prévu pour une résolution d'écran de 1024 x 768 mais je pense que tu sauras l'adapter à la taille souhaitée.

A+

lundi 5 novembre 2007 à 21:22:56 | Re : Graphisme 2D Plein écran avec Window

epineurien

Bonjour Nasman ,

J'avait déjà vu ta source ,mais j'ai pas retenu ta méthode car (si j'ai bien compris) , chaque fois que tu souhaite changer la couleur du pixel , tu doit faire un nouveau CreateSolidBrush+2 x SelectObject+DeleteObject ...
Même avec un test vérifiant si le nouveau pixel est de la même couleur que le précédent (pour économiser les changements) , ca reste absolument impossible à faire tourner dans un temps décent (le but ultime étant de faire de la 3D , donc il y a peu de chance que deux pixels soit de la même couleur) .
Idem pour les autres fonctions que tu utiliser : "createPen , selectobject , movetoex, lineto ..." , a chaque fois il y a 2/3 fonctions pour 1 tracé .
Déjà quand j'était en 16bits j'avait tendance à faire trés gaffe avec le temps d'affichage d'un pixel , mais là ; plusieurs API-Windows pour un seul point sur l'écran , "ca le fait pas" .
Donc ta technique fonctionne trés bien pour faire de grandes surfaces uniformes (rectangle ,ligne , ...) , mais pour le reste ...
 
Ah moins que je n'ai pas bien compris ton code ?

;------------------------------------------
Bonjour _dune2_ (vive Frank Herbert) ,

J'aimerais faire ma propre librairie , ca me gêne déjà de devoir faire avec les API de window , alors rajouter une librairie extérieure , j'aimerais éviter .
Cela dit je vais jeter un coup d'oeil quand même .


A+



mardi 6 novembre 2007 à 20:29:32 | Re : Graphisme 2D Plein écran avec Window

epineurien

Toutes mes excuses à Nasman ... Je viens de tester ton code , et ... Setpixel fonctionne avec ton BeginPaint/EndPaint . On a une procédure par pixel , donc pour la vitesse ca ira . Et un probleme de résolu grâce à toi (merciiiiiiii) ! Maintenant , il ne reste plus que le second prôbleme : comment on passe une fenêtre window en plein écran ? (si possible avec juste les .lib de window , il doit bien y avoir qqc dans gdi32 , non ?)

mercredi 7 novembre 2007 à 08:52:52 | Re : Graphisme 2D Plein écran avec Window

Nasman

Bonjour epineurien,

Qu'entends tu exactement par plein écran ? Est ce que tu veux dire que la fenêtre prenne tout l'écran (dans ce cas il faut récupérer le mode d'affichage avec GetSystemMetrics) et déterminer les coordonnées de tes pixels en conséquence), si tu veux supprimer la barre système de ta fenêtre et la bordure, il faut passer les paramètres adéquats à CreateWindow.

A+


mercredi 7 novembre 2007 à 11:15:12 | Re : Graphisme 2D Plein écran avec Window

epineurien

Eh bien en fait ... les deux .

Je voudrais que la fenêtre de dessin prenne tout la place (donc pas de bordure/barre systeme) et si possible que je puisse être dans une autre résolution que celle du bureau . Comme ce qu'on obtient avec une interruption VESA en somme , ou quelque chose d'approchant .



Cette discussion est classé dans : écran, pixel, window, graphisme, 2d


Répondre à ce message

Sujets en rapport avec ce message

Maitriser chaque petit pixel de l'écran [ par tntprog ] Bonjour, J'aimerais pouvoir afficher ou éteindre le moindre petit pixel de mon écran avec la couleur que je désir. Est-ce que quelqu'un sait comment luminance d'un pixel [ par raoulli ] bonsoir.comme le titre l'indique, je cherche a connaitre la luminance d'un pixel a l'ecran.j'ai son RGB, mais je n'ai pas trouvé l'API pour pouvoir co Hide Window sous Masm [ par Stormy ] StormyJ'ai une application parfaitement fonctionnelle sous masm32. Je souhaite la rendre "cachée" soit en mode Hide. Celle-ci comporte plusieurs zones mode 13h et graphisme [ par krater ] je suis en train de programmer un TRON et je voudrais savoir comment gérer l'ecran graphique en ayant une partie fixe(fond)en bitmap et une partie mob encore du tron et du graphisme [ par krater ] me revoila pour une question de TRON( et oui j'ai un ambitieux projet)je sais que pour afficher point par point un dessin, je peut mettre dans un tabl 2D graphics java [ par sih ] j'ai un programme qui fait des calculs et je veux exploiter ces resultats dans un graphe et je ne sais pas comment le dessiner (abscisse,ordonnée,elli Lecture à l'écran [ par swiss_cheese10 ] J'ai un gros problème, je suis débutant en ASM et j'aimerais faire un pogramme où l'utilisateur doit entrer une valeur.Est-ce qu'il existe un fonctio Fréquence clavier !!! [ par eldered ] Bonjour a tous !Je code actuellement en java un bomberMan et j'ai quelques soucis de fluidité dans mon scrolling de la carte. Certes, si je scroll pix Afficher un pixel [ par S2R ] Bonjour, je voudrait savoir comment afficher un pixel à l'écran sans passer par les interruptions, en mode vidéo 12h.j'ai trouvé une fonction, mais el tasm, couleurs 32bits ou 24bits? [ par qbced ] Lu all! J'me suis mit à la prog asm, la j'arrive à afficher une image en 800*600*32bits, mais mon prob c'est que la plage memoire pour un pixel est de


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.