У меня проблемы с отрисовкой текстур в Eclipse.
Когда я запускаю приложение Java и когда появляется всплывающее окно, я вижу только текстуру (красные квадраты из png.) Несколько миллисекунд, затем все становится черным.
Я получил этот код, и он отлично работает на всех моих одноклассниках, но не на моем Macbook Pro 2012. Запустите JRE 1.8.
Я изменил библиотеку jogl на те, что для Mac OSX, и при отладке я не получаю никаких ошибок. Что я вижу, так это то, что в функции drawQuad что-то не так, и если я удалю строку gl.glEnable(GL.GL_TEXTURE_2D) , все отрисуется, но без текстур, как вы понимаете, просто белым.
Так может кто знает в чем проблема? Или есть какие-либо известные ошибки в OSX с GL_TEXTURE_2D? Как я уже писал, приложение отлично работает на других ПК.
Вот класс, я думаю, где проблема:
private Texture texture;
void loadResources() throws GLException, IOException {
if (texture == null)
texture = TextureIO.newTexture(new File("3.png"), false);
}
void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) {
GL2 gl = drawable.getGL().getGL2();
GLU glu = new GLU();
gl.glMatrixMode(GL_PROJECTION);
gl.glLoadIdentity(); // reset
glu.gluOrtho2D (0.0, w, h, 0); // define drawing area
gl.glMatrixMode(GL_MODELVIEW);
gl.glLoadIdentity(); // reset
}
void drawQuad(GLAutoDrawable drawable, float x, float y, float w, float h) {
GL2 gl = drawable.getGL().getGL2();
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glBindTexture(GL.GL_TEXTURE0, texture.getTarget());
gl.glBegin(GL2.GL_QUADS);
gl.glColor3f(1, 1, 1);
gl.glTexCoord2f(1, 1);
gl.glVertex2f(x, y);
gl.glTexCoord2f(1, 1);
gl.glVertex2f(x + w, y);
gl.glTexCoord2f(1, 0);
gl.glVertex2f(x + w, y + h);
gl.glTexCoord2f(0, 0);
gl.glVertex2f(x, y + h);
gl.glEnd();
}
public void clearScreen(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
}
Просто оставьте сообщение, если вам нужно больше кода.