Sto provando a impegnarmi nel framework OpenGL di Libgdx. Ho usato LwjglApplication
per creare alcune semplici app che eseguono il rendering di riquadri, alcune mesh e alcune trame. Ho trovato l'app di Aurelien Ribon che crea corpi rigidi di Box2D. Ha utilizzato lo LwjglCanvas
per l'integrazione con Java's Swing. Ho provato a crearne uno, ho creato uno JFrame
e ho aggiunto LwjglCanvas
. Quindi imposta l'operazione di default dello JFrame
su EXIT_ON_CLOSE
.Che cosa significa "AL lib: alc_cleanup: 1 dispositivo non chiuso"?
Tuttavia ogni volta che chiudo l'applicazione, questa registra al mio console:
AL lib: alc_cleanup: 1 device not closed
.
Non so cosa significhi e non mi fa alcun danno. Voglio solo sapere cosa significa. Secondo LwjglCanvas
docs:
All OpenGL calls are done on the EDT. This is slightly less efficient then a dedicated thread, but greatly simplifies synchronization. Note that you may need to call stop() or a Swing application may deadlock on System.exit due to how LWJGL and/or Swing deal with shutdown hooks.
Dove devo associare il LwjglCanvas.stop()
, devo aggiungere alla coda di EventDispatchThread
o dovrei associarlo al JFrame.addWindowListener
?
E cosa significa "AL lib: alc_cleanup: 1 dispositivo non chiuso"?
Grazie mille!
Vedo. Quindi il messaggio non ha nulla a che fare con il thread di invio dell'evento in Java Swing. Come mai il messaggio non è presente quando si chiude la LibgdxApplication? – nagloan
Forse 'alc_cleanup' non viene invocato in alcuni percorsi di uscita dell'app (ad esempio, se viene invocato' System.exit() ', non verrà richiamato' alc_cleanup'. –
Grazie per la chiarificazione e per il codice di riferimento. per me. – nagloan