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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Gestion de Buffer Graphique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion de Buffer Graphique

n°1952624
aLx3
Posté le 23-12-2009 à 00:01:23  profilanswer
 

Salut tout le monde,
 
Pour un projet C# j'ai un petit soucis et je n'ai pas réussi à trouver sur l'aide en ligne.
 
Je crée un programme de création de circuit électrique (résistance,moteur,générateur...) sur une grille redimensionnable. Je gère l'affichage avec un double buffering.
 
Lorsque je redimensionne ma grille à une taille inférieure. J'aimerais donc supprimer la partie de la grille qui ne sera plus affchée à l'écran mais qui est toujours dans le buffer. Est-ce possible donc de supprimer une zone d'affichage du buffer?
 
Merci d'avance
alex

mood
Publicité
Posté le 23-12-2009 à 00:01:23  profilanswer
 

n°1952735
breizhbugs
Posté le 23-12-2009 à 11:37:56  profilanswer
 

Salut,
Tu envisages le redimensionnement inférieur la ca va, mais si c'etait l'agrandissement -> crash car buffer pas assez grand!
 
Je pense que tu dois recréer un buffer de taille adapté à l'affichage à chaque redimensionnement de la fenetre.

n°1952743
aLx3
Posté le 23-12-2009 à 11:52:15  profilanswer
 

Ok c'est ce que je pensais aussi. Donc soit prévoir dès le départ un buffer asser grand et imposer une limite de grille maximale. Ou alors adapter le buffer à chaque redimensionnement. Mais bon à ce moment il faudra voir à na pas supprimer les trait présents dans le buffer qui représentent le circuit.
 
Pour le redimensionnement j'avais pensé à quelques chose du genre :
 

Citation :


 
if ((DisplayRectangle.Height != 0) && (DisplayRectangle.Width != 0))
{
    if ((this._tailleMemoireTamponPrincipale.Width < this.DisplayRectangle.Width) || (this._tailleMemoireTamponPrincipale.Height < this.DisplayRectangle.Height))
    {//le formulaire est plus grand...il faut agrandir la mémoire tampon
          BufferedGraphics newMemoire;
 
          Rectangle rect;
          rect = new Rectangle(0, 0, Math.Max(this._tailleMemoireTamponPrincipale.Width, this.DisplayRectangle.Width),Math.Max(this._tailleMemoireTamponPrincipale.Height, this.DisplayRectangle.Height));
          newMemoire = _ContextMemoireTampon.Allocate(this.CreateGraphics(),rect);
          newMemoire.Graphics.Clear(this.BackColor);
 
          _MemoireTamponPrincipale.Render(newMemoire.Graphics);
          _MemoireTamponPrincipale.Dispose();
          _MemoireTamponPrincipale = newMemoire;
          _tailleMemoireTamponPrincipale.Width = rect.Width;
          _tailleMemoireTamponPrincipale.Height = rect.Height;
 
          newMemoire = _ContextMemoireTampon.Allocate(this.CreateGraphics(), this.DisplayRectangle);
         _MemoireTamponSecondaire.Dispose();
          _MemoireTamponSecondaire = newMemoire;
       }
}

Message cité 1 fois
Message édité par aLx3 le 23-12-2009 à 11:52:50
n°1952755
breizhbugs
Posté le 23-12-2009 à 12:54:49  profilanswer
 

aLx3 a écrit :

Mais bon à ce moment il faudra voir à na pas supprimer les trait présents dans le buffer qui représentent le circuit.


Euh on est censé tout redessiné a chaque image normalement je crois, donc on vide le buffer  chaque fois non?
ou alors tu definis un espace de travail virtuel fixe (c'est a dire offscreen) et tu "zoomes" dessus en fonction de la portion du circuit que tu veux afficher sur un buffer toujours de la taille de la zone a affichée


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Gestion de Buffer Graphique

 

Sujets relatifs
Création de graphique Via AccessURGENT - Modification des paramètres par défaut d'un graphique croisé
Creation base de donnée gestion du stock[CAML] gestion souris
Gestion de Select liésProblème de gestion de la liaison série RS232 en VHDL
[Oracle] Gestion des index[xsl]gestion du retour chariot dans une variable string
Debugger graphique ARMgestion des erreurs dans un code word
Plus de sujets relatifs à : Gestion de Buffer Graphique


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