Estoy tratando de usar este class con JOGL. Hace referencia a BufferUtil, que no puedo encontrar en ninguna parte. Encontré documentation, pero no código actual. Eclipse no sugiere importarlo desde ningún lado. ¿Qué debo hacer para poder usar este código?Java: BufferUtil?
Respuesta
Creo que sacaron BufferUtil
hace un tiempo (parece que nunca hizo nada súper útil de todos modos) pero como el código solo asigna un nuevo ByteBuffer
, no lo necesita. Simplemente haga un ByteBuffer unpackedPixels = ByteBuffer.allocate(packedPixels.length * bytesPerPixel);
en su lugar.
También hay una clase JOGL más nueva que hace algo similar llamado com.jogamp.opengl.util.texture.TextureIO
con unos pocos métodos newTexture(...)
.
TextureIO absolutamente reemplaza exactamente lo que esta clase está tratando de hacer. Simplemente ignore esta clase y use el TextureIO incorporado. – Ricket
Su sugerencia es incorrecta porque crea un búfer de bytes indirectos que potencialmente no respeta el pedido original. Siempre debemos usar los Buffers de clase auxiliar para evitar hacerlo. Los búferes mal asignados pueden causar problemas, algunos métodos solo admiten búferes directos de NIO. – gouessej
me encontré con el mismo problema mientras portar una aplicación 1.x JOGL a JOGL 2 y encontrado métodos equivalentes BufferUtil en la nueva biblioteca gluegen: com.jogamp.common.nio.Buffers
JavaDoc: http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/nio/Buffers.html
En los tutoriales de NeHe para JOGL, hay muchos lugares que usan BufferUtil
para crear los búferes. Con JOGL 2.0 podemos usar com.jogamp.common.nio.Buffers
en su lugar.
Por ejemplo,
BufferUtil.newIntBuffer(BUFSIZE)
convierte Buffers.newDirectIntBuffer(BUFSIZE)
BufferUtil.newByteBuffer(BUFSIZE)
convierte Buffers.newDirectByteBuffer(BUFSIZE)
Bastante uso com.jogamp.common.nio.Buffers para hacer eso. GLBuffers es principalmente para uso interno, incluso no debería estar en la API pública. – gouessej
Actualicé esta respuesta de acuerdo con el comentario de @ gouessej de que no deberíamos usar la clase 'com.jogamp.opengl.util.GLBuffers'. –
- 1. Java PropertyChangeListener Java
- 2. java
- 3. ejecutar código Java en Java
- 4. Referencias legales a Java Java
- 5. Scala - Java =? (O Clojure -? = Java)
- 6. Eclipse/Java: ¿es dañino importar java. (Namespace). *?
- 7. Juegos Java 2d con Java SWING
- 8. Compilación de Java 7 a Java 6
- 9. Diferencia entre Java SE y Java EE
- 10. Encriptación AES Java -> PHP -> Java
- 11. JDK = Java SE && JDK! = Java EE?
- 12. Nuevo programador Java, composición básica de Java
- 13. diferencia entre java bean y java class?
- 14. Serializar un objeto Java a código Java?
- 15. Compilación de archivos .java externos desde Java
- 16. Java Web Start vs Embedded Java Applet
- 17. Java PBEWithMD5AndDES
- 18. java == operador
- 19. Java Stringbuilder.replace
- 20. OPENCV Java
- 21. Java Comparador
- 22. OpenID Java
- 23. Java Covariantes
- 24. Java preprocesador
- 25. Java generics
- 26. Java: Class.this
- 27. Java Agent
- 28. Java FilenameFilter
- 29. Java URI.resolve
- 30. práctica java
¿Ha añadido una referencia al archivo 'jogl.jar' a su proyecto? –
Sí. Otras clases de JOGL, como GL2, funcionan bien. –
No hay jogl.jar en JOGL 2.0, se llama jogl.all.jar. Hay otro JAR sin dependencia de AWT. – gouessej