Foros del Web » Programación para mayores de 30 ;) » Java »

cavas (awt) puede dibujar sobre JOGL?

Estas en el tema de cavas (awt) puede dibujar sobre JOGL? en el foro de Java en Foros del Web. Estoy trabajando en un plugin para cierto software que no me da la posibilidad de usar los metodos disponibles en su API para dibujar sobre ...
  #1 (permalink)  
Antiguo 23/06/2010, 18:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
cavas (awt) puede dibujar sobre JOGL?

Estoy trabajando en un plugin para cierto software que no me da la posibilidad de usar los metodos disponibles en su API para dibujar sobre el canvas. De cualquier manera, puedo dibujar tomando el canvas del awt en vez del canvas propuesto por el software.

Mi pregunta es si así como puedo hacer uso del componente heavyweigth (awt) para dibujar sobre el lighweight, también es posible usar awt para dibujar sobre openGL? Es que no puedo usar los metodos propios del soft para dibujar con openGL.
  #2 (permalink)  
Antiguo 24/06/2010, 09:59
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: cavas (awt) puede dibujar sobre JOGL?

La opcion que tengo en la API es:

Cita:
java.awt.Component getGLCanvas()
Get the GLCanvas into which this draws.
Es decir que con getGLCanvas puedo acceder al canvas JOGL. Pero como sería? Haciendo downcasting? Así?

Cita:
Canvas elCanvas = (Canvas) thecanvas.getGLCanvas();
Es decir, lo que obtengo con ese metodo es un componente awt. Como puedo asegurarme de que obtendré un canvas JOGL?

Resuelto eso, como puedo dibujar texto sobre el canvas?
  #3 (permalink)  
Antiguo 24/06/2010, 13:16
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: cavas (awt) puede dibujar sobre JOGL?

Ok, voy mucho mas adelantado. Puedo generar un evento sobre el canvas para escribir un texto. Ahora la cuestion es como actualizar ese texto!

Así obtengo el canvas y defino un eventListener:
Cita:
/*** Check for OpenGL ***/
try
{
Class.forName("javax.media.opengl.GLCanvas");
openGLAvailable = true;
JOGLdrawer = canvas.getCanvasDrawer();
GLCanvas gCanvas = (GLCanvas)((GLCanvasDrawer)JOGLdrawer).getGLCanvas ();

// GLCanvasDrawer Event
gCanvas.addGLEventListener(new CanvasListener());

} catch(Exception e){}
Cita:
private class CanvasListener implements GLEventListener
{
public void init(GLAutoDrawable drawable)
{
Font font = view.getComponent().getFont();
renderer = new TextRenderer(font);
renderer.setColor(ViewerCanvas.lineColor);
}

public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height)
{
}

public void display(GLAutoDrawable drawable)
{
// draw text for JOGL
renderer.beginRendering(drawable.getWidth(), drawable.getHeight());
renderer.draw(selectedMessage, 70, drawable.getHeight()-45);
renderer.draw(statsMessage, drawable.getWidth()-175, drawable.getHeight()-45);
renderer.endRendering();
}

public void displayChanged(GLAutoDrawable drawable, boolean arg1, boolean arg2)
{
}
}
Las variables selectedMessage y statMessage se van actualizando, pero como puedo hacer para reflejar esos cambios en pantalla?

Etiquetas: awt, dibujar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.