Bonjour,
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void Rendu() { Render.BeginDraw(); Render.EndDraw(); swapChain.Present(1, PresentFlags.None); }
J'utilise SharpDX (qui utilise DirectX) et j'ai codé le rendu d'un panel en C# comme suit:
La méthode Rendu() est utilisé ici dans une boucle de message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void Rendu() { Render.BeginDraw(); Graphic.Clear(ColeurBackGround); for (int i=0;i<10;i++) for (int j=0;j<1000;j++) Graphic.DrawLine(new Vector2(Form.Data.Profil[i].Segment[j].X0, Form.Data.Profil[i].Segment[j].Y0), new Vector2(Form.Data.Profil[i].Segment[j].X1, Form.Data.Profil[i].Segment[j].Y1), new SolidColorBrush(Graphic, Form.Data.Profil[i].Couleur), 1f, new StrokeStyle(factory, strokeProperties)); Render.EndDraw(); swapChain.Present(0, PresentFlags.None); }
Au début, l'affichage se fait, mais j'ai une perte progressive de mémoire (leak memory) avec un message d'erreur sur DrawLine: out of memory!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // Boucle de message Form1 Form = new Form1(); Form.Show(); while (Form.Created) { if (Form.vue2D!=null) Form.vue2D.Render(); Application.DoEvents(); } Form.Dispose();
Je ne comprend pas pourquoi j'obtiens ce plantage, quelqu'un aurait-il une idée? Merci
Partager