Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Disfunzionamento delle OpenGL
Forum - C# / VB.NET - Disfunzionamento delle OpenGL

Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 22:38
Domenica, 04/12/2016
Salve ragazzi,

Sicuramente conoscete le OpenGL e forse qualcuno le ha provate in C++
che poi non sono così diverse da come le si viene usate in C#

Mi capita un problema strano ed al quanto insolito.

Ho preso dai pacchetti Nuget, il GLControl che proviene dall'OpenTK

Nessun problema nel configurare il tutto ed a far girare il programma
disegnando varie texture.

Il problema succede quando tento di aggiornare le posizioni delle texture
è come se il Draw non rispondesse.


ho semplicemente preso l'evento OnPaint del controllo

Codice sorgente - presumibilmente C# / VB.NET

  1. //Funzione paint
  2.    private void glControl1_Paint(object sender, PaintEventArgs e)
  3.         {
  4.              //Se il controllo non è stato inizializzato
  5.             if (!glControlIsLoaded)
  6.                 return;
  7.  
  8.             //Clear
  9.             GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
  10.             GL.MatrixMode(MatrixMode.Modelview);
  11.             GL.Ortho(0, MapSize.Width, 0, MapSize.Height, -1, 1);
  12.             GL.MatrixMode(MatrixMode.Modelview);
  13.             GL.PushMatrix();
  14.             GL.LoadIdentity();
  15.             GL.Enable(EnableCap.Texture2D);
  16.  
  17.            render.Draw(texture,e.X,e.Y);




Cosa succede,
Succede che il rendering è molto ma molto lento!
come se non fosse un vero render. non sò se mi sono spiegato bene.
Non aggiorna velocemente come dovrebbe.
nonostante gli abbia forzato ad invalidare il controllo alla fine dell'operazione.

Qualche idea?



PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:33
Lunedì, 05/12/2016
controlla se l'evento paint è quello giusto nel quale inserire questo codice.
e verifica se è giusto cancellare tutto prima di disegnare qualcosa di nuovo, potrebbe essere questo che rallenta


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6112
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:01
Lunedì, 05/12/2016
Concordo con HeDo...

Leggi la documentazione di GLControl. Forse c'e' qualche esempio.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote