Estoy haciendo un proyecto Gr 12. La idea básica es representar una textura de mapa que se puede cambiar a través de la GUI de swing.
Estoy atascado en el renderizado usando una pantalla que está patentada a un JFrame. No aparece nada y no puedo entenderlo. He cambiado el color de fondo y el color de representación. Heres algunos del código:
public class DisplayWindow extends JFrame{
public Canvas canvas = new Canvas();
private JPanel westPanel=new JPanel();
private List animalArr;
private List animalOptionsBoxArr;
public JLabel optionsLabel=new JLabel();
public JToggleButton animalIOToggle = new JToggleButton();
public JTextArea animalIOText = new JTextArea();
List renderableEntities= new ArrayList();
//states modified by logic class that handle all swing listners
private boolean resizePending=false;
private boolean exitPending=false;
DisplayWindow(List animalArr)
{
super();
this.animalArr=animalArr; //created from db in logic class
}
public void run()
{
startDisplay();
}
public void startDisplay()
{
//Init GUI
setupFrame(); //setup main Jframe
setupMainPanels(); //setup main panels within JFrames borderLayout)
setupContentPanels(); //setup the content panels within the main panel
canvas.setSize(getDisplayWidth(), getDisplayHeight());
canvas.setFocusable(true);
canvas.setIgnoreRepaint(true);
this.add(canvas,BorderLayout.CENTER);
this.setVisible(true);
//Display Setup
try
{
Display.setResizable(true);
Display.setParent(canvas);
Display.sync(60);
Display.create();
}
catch(LWJGLException ex)
{
Error.fatalError("Failed to Initialise Park Display",ex);
}
//OpenGL INIT
glClearColor(0.0f,0.0f,0.0f,0.0f); //black backround
glEnable(GL11.GL_TEXTURE_2D);
glEnable(GL11.GL_BLEND);
glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,getDisplayWidth(),0,getDisplayHeight(),1,-1);
glMatrixMode(GL_MODELVIEW);
//Render Loop
while(!isExitPending())
{
glClear(GL_COLOR_BUFFER_BIT);
render();
checkResizeDisplay();
Display.update();
}
cleanUp();
}
public void render()
{
//test Render
glColor3f(1,1,1); //white render color
glRectf(100,100,400,400);
glBegin(GL_POINTS); //point at 5 above mouse location
glVertex2d(Mouse.getX(),Mouse.getY()+5 );
glEnd();
}
public void checkResizeDisplay() //is this even neccisary?
{
if(resizePending==true)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,Display.getWidth(),0,Display.getHeight(),1,-1);
glMatrixMode(GL_MODELVIEW);
}
}
}
Hay una gran cantidad de código, así que espero que el problema esté ahí. Traté de formatearlo un poco. eso explicará los objetos / referencias no utilizados ext. Este es el único código relacionado con LWJGL. DisplayWindow se ejecuta como un nuevo hilo Runnable.
Así es como se ve el programa en este momento:
grr http://img839.imageshack.us/img839/6697/grrf.jpg
¿Por qué no se muestra nada en la pantalla?
Fijo. se redujo a una falta de comprensión muy básica. estaba tratando de renderizar un rectángulo de color con
glColor3f(1,1,1);
mientras
GL_TEXTURE_2D
fue habilitado. parece
glDisable(GL11.GL_TEXTURE_2D );
debe llamarse antes de que se procese una forma de color. asumiendo que
glEnable(GL11.GL_TEXTURE_2D );
Ya ha sido llamado.
La especificación de serialización (SE8) implica que los valores de campo de las constantes enum no se serializan (como lo leí): 1.12 Serialización de las constantes enum Las constantes enum se serializan de manera diferente ...
Estoy recuperando datos de un archivo y por alguna razón extraño el primer carácter cada vez. mi código. public String readFile () {String str = "No autenticado"; // Leyendo el archivo intente {...
Quiero convertir cualquier archivo a PNG y también revertir el proceso, todo en Java. Quiero usar un formulario int-RGB para la imagen, y hacer que los bytes del archivo sean un byte en el entero RGB. Esta ...
Estoy tratando de acceder a un archivo de Microsoft Excel a través de Java utilizando sun.jdbc.odbc.JdbcOdbcDriver. Sin embargo, sigo obteniendo: "java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Nombre del origen de datos no ...