Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2518 connectés 

  FORUM HardWare.fr
  Programmation

  [zindozs] en bas niveau, afficher des pixels dans une fenetre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[zindozs] en bas niveau, afficher des pixels dans une fenetre

n°201071
farib
Posté le 24-08-2002 à 00:04:22  profilanswer
 

voila, je cherche a afficher des pixels dasn une fenetre, mais a un bas niveau, afin de pouvoir m'amuser a écrire des algos pour tracer une ligne, etc....
 
bref, je souhaite pas utiliser opengl pour afficher des pixels, paske pour réécrire une fonction ligne, ce serait trop "lent" par rapport a la fonctrion ligne d'opengl....
 
 
si vosu voyez ce que je veux dire

mood
Publicité
Posté le 24-08-2002 à 00:04:22  profilanswer
 

n°201084
zion
Plop
Posté le 24-08-2002 à 00:27:08  profilanswer
 

Tu veux aller bas comment?
 


---------------
Informaticien.be - Lancez des défis à vos amis
n°201087
farib
Posté le 24-08-2002 à 00:32:23  profilanswer
 

ce que je veux faire : dessiner une fenetre, y afficher des pixels.... et que quand je bouge la fenetre, les pixels bougent avec la fenetre.....
 
 
mais que la seule fonction qui m'intéresse, c'est pixe(x,y,R,G,B)
 
 
a la limite, la fenetre "gere" l'agrandissement et le "streching" pour la résolution, du genre ma fenetre elle a 320*240 pixels/points, quelle que soit sa taille réelle en pixels réels...
 
 
pour l'instant, c'est tout ce qui m'intéresse

n°201090
zion
Plop
Posté le 24-08-2002 à 00:37:19  profilanswer
 

What about SetPixel()
 
Mais bon, comme tu précises pas le langage, c'est pas évident de te donner des infos, en delphi/builder, tu utilises un Bitmap et on en parle plus


---------------
Informaticien.be - Lancez des défis à vos amis
n°201093
farib
Posté le 24-08-2002 à 00:42:38  profilanswer
 

c++builder...
 
 
le probleme, c'est que j'ai compilé l'éxemple de dessinateur de builder, et il y avait du clipping lors du tracé de cercles, un peu comme lorque j'ai essayé de faire mon parser c++avec un richedit... j'utilisais un composant de trop haut niveau, et j'ai peur que le TCanvas de builder pour les pixels soit bcp moisn rapide que la fonction api window$

n°201095
zion
Plop
Posté le 24-08-2002 à 00:44:34  profilanswer
 

Benh non, ca utilise l'API, rien de plus.
 
Va voir les sources des compos, c'est instructif ;-)
 

Code :
  1. procedure TCanvas.SetPixel(X, Y: Integer; Value: TColor);
  2. begin
  3.   Changing;
  4.   RequiredState([csHandleValid, csPenValid]);
  5.   Windows.SetPixel(FHandle, X, Y, ColorToRGB(Value));
  6.   Changed;
  7. end;


---------------
Informaticien.be - Lancez des défis à vos amis
n°201117
farib
Posté le 24-08-2002 à 01:19:11  profilanswer
 

clock_t truc = clock();
for (int i = 0 ; i <Image->Width ; i++ )
       for (int j = 0; j <Image->Height ; j++)
                Image->Canvas->Pixels[i][j]=clWhite;
clock_t truc2 = clock() - truc;
 
float trucd = truc2/CLK_TCK ;
 
 
719 millisecondes, c'est trp lent !

n°201118
zion
Plop
Posté le 24-08-2002 à 01:24:49  profilanswer
 

C'est malin, mais c'est pas Borland qui est en cause, c'est l'API et c'est bien normal dans ce cas-ci.
 
Utilise le ScanLine, tu auras un pointeur sur un tableau de pixels.
 
Fais une recherche, je suis sur qu'il y a un topic la dessus  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
n°201137
taureau
Posté le 24-08-2002 à 07:53:59  profilanswer
 

c'est vrai quand passant par scanline tu vas doper ton accès aux pixels car setpixel c'est lent (en utilisant directemet l'api c vrai aussi que c un poil plus rapide car tu évites les controles de sécurité de la vcl)  
 
tu peux aussi essayer la librairie graphics32
 

Citation :

Graphics32 is a set of functions, classes, components and controls designed for high-performance graphics programming.
 
Being highly specialized for 32-bit pixel format, it provides fast operations with pixels and graphic primitives and in most cases Graphics32 considerably outperforms standard TBitmap/TCanvas classes.
 
The library comes with a full source code, documentation and examples.


Message édité par taureau le 24-08-2002 à 07:56:21
n°201144
farib
Posté le 24-08-2002 à 09:43:29  profilanswer
 

mon idée, c'est pas de réécrire opengl, mais de réécrire , pour le début, les fonctions bas niveau de lignes, polygones, etc.....

mood
Publicité
Posté le 24-08-2002 à 09:43:29  profilanswer
 

n°201145
youdontcar​e
Posté le 24-08-2002 à 09:47:17  profilanswer
 

tu regardes CreateDIBSection(), ça te donnera un 'écran virtuel' dans lequel tu pourras faire ta cuisine. tu l'affiches ensuite avec BitBlt().
 
dans la msdn, il y a un exemple 'fire' qui fait tout ça.

n°201154
farib
Posté le 24-08-2002 à 10:14:12  profilanswer
 

comme d'hab l'installation des packages chie....
et la dans la msdn je trouve rien de clair, c'est le bordel...


Message édité par farib le 24-08-2002 à 10:18:13
n°201159
youdontcar​e
Posté le 24-08-2002 à 10:27:59  profilanswer
 
n°201162
farib
Posté le 24-08-2002 à 10:50:47  profilanswer
 

oué, fo télécharger les 130 mo déexemples.... cool
 
 
 
c'est plus lent avec scanline !!!!!

Code :
  1. {
  2. Graphics::TBitmap * WorkImage = new Graphics::TBitmap();
  3. WorkImage->Width = 640 ;
  4. WorkImage->Height = 480 ;
  5. for (int j = 0 ; j < WorkImage->Height ; j++ )
  6. {
  7.        Byte * Ligne = (Byte *)WorkImage->ScanLine[j];
  8.        for (int i = 0 ; i < WorkImage->Width; i++ )
  9.                 Ligne[i]=(Byte)0;
  10. }
  11. Image->Canvas->Draw(0,0,WorkImage);
  12. }


Message édité par farib le 24-08-2002 à 10:52:48
n°201169
youdontcar​e
Posté le 24-08-2002 à 11:28:17  profilanswer
 
n°201173
taureau
Posté le 24-08-2002 à 11:39:07  profilanswer
 
n°201192
farib
Posté le 24-08-2002 à 12:25:50  profilanswer
 

ma question : les gars qui ont programmé opengl, quelle(s) routine(s) appellent-il pour allumer des pixels ?

n°201242
taureau
Posté le 24-08-2002 à 14:27:33  profilanswer
 

ma réponse : j'en sais rien mais y a pas de routine miraculeuse tu dois passer par les dib et en suivant les différents liens donnés tu auras des sources pour te montrer des routines optimisées a cet effet
 
tiens cadeau http://www.droopyeyes.com/default. [...] oduct&ID=3
 
c pour delphi mais ce doit etre facilement adaptable


Message édité par taureau le 24-08-2002 à 14:37:13

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [zindozs] en bas niveau, afficher des pixels dans une fenetre

 

Sujets relatifs
Redimensionnement d'une fenêtreAncrage de la fenêtre
[HTML,JS] Ma fenêtre principale sans barres d'adresses, de menus ?[JS] accéder aux fontion de la fenétre appelante
[BCB/delphi] mettre un TButton "en dehors de la fenetre"[HTML,JS,ActiveX] Fenetre d'arborescence Win32 sur une appli Web
[HTML / JS] Pb avec div pour afficher/masquer.comment faire une menu sur le coté et afficher le reste sur la droite?
DHTML - afficher sur click un block div & decalerle reste[JS-HTML] Pb de Fermerture automatique de fenetre :-(
Plus de sujets relatifs à : [zindozs] en bas niveau, afficher des pixels dans une fenetre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR