I have imported lwjgl in Eclipse. The teacher gave us a BaseWindow application to import in Eclipse, too. The application should display a 1024x768 black window. But instead of black window I get black and white stripes flickering on the display. Screenshot: https://i.stack.imgur.com/JHsMC.png
I can't show a picture of stripes, because they were not visible on the screenshot. But there is another error visible.
This is the source of BaseWindow.java file:
import org.lwjgl.*;
import org.lwjgl.opengl.*;
import org.lwjgl.input.*;
import java.nio.*;
public class BaseWindow
{
protected static boolean isRunning = false;
public static void main(String[] args)
{
// What version of OpenGL is supported?
// Start our program
(new BaseWindow()).execute();
}
/**
* Initializes display and enters main loop
*/
protected void execute()
{
try
{
initDisplay();
} catch (LWJGLException e)
{
System.err.println("Can't open display.");
System.exit(0);
}
BaseWindow.isRunning = true;
mainLoop();
Display.destroy();
}
/**
* Main loop: renders and processes input events
*/
protected void mainLoop()
{
// setup camera and lights
setupView();
while (BaseWindow.isRunning)
{
// reset view
resetView();
// let subsystem paint
renderFrame();
// process input events
processInput();
// update window contents and process input messages
Display.update();
}
}
/**
* Initial setup of projection of the scene onto screen, lights, etc.
*/
protected void setupView()
{
}
/**
* Resets the view of current frame
*/
protected void resetView()
{
}
/**
* Renders current frame
*/
protected void renderFrame()
{
}
/**
* Processes Keyboard and Mouse input and spawns actions
*/
protected void processInput()
{
if (Display.isCloseRequested() || Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))
{
BaseWindow.isRunning = false;
}
}
/**
* Finds best 1024x768 display mode and sets it
*
* @throws LWJGLException
*/
protected void initDisplay() throws LWJGLException
{
DisplayMode bestMode = null;
DisplayMode[] dm = Display.getAvailableDisplayModes();
for (int nI = 0; nI < dm.length; nI++)
{
DisplayMode mode = dm[nI];
System.out.println(mode.getFrequency() + " " + mode.getWidth() + " " + mode.getHeight());
if (mode.getWidth() == 1024 && mode.getHeight() == 768
&& mode.getFrequency() <= 85)
{
if (bestMode == null
|| (mode.getBitsPerPixel() >= bestMode.getBitsPerPixel() && mode
.getFrequency() > bestMode.getFrequency()))
bestMode = mode;
}
}
System.out.println("Best\n" + bestMode.getFrequency() + " " + bestMode.getWidth() + " " + bestMode.getHeight());
Display.setDisplayMode(bestMode);
// FSAA
Display.create(new PixelFormat(8, 8, 8, 4));
// No FSAA
// Display.create();
Display.setTitle(this.getClass().getName());
System.out.println("GL_VERSION: "+GL11.glGetString(GL11.GL_VERSION));
System.out.println("GL_VENDOR: "+GL11.glGetString(GL11.GL_VENDOR));
System.out.println("GL_RENDERER: "+GL11.glGetString(GL11.GL_RENDERER));
}
/**
* Utils for creating native buffers
*
* @throws LWJGLException
*/
public static ByteBuffer allocBytes(int howmany)
{
return ByteBuffer.allocateDirect(howmany).order(ByteOrder.nativeOrder());
}
public static IntBuffer allocInts(int howmany)
{
return ByteBuffer.allocateDirect(howmany).order(ByteOrder.nativeOrder())
.asIntBuffer();
}
public static FloatBuffer allocFloats(int howmany)
{
return ByteBuffer.allocateDirect(howmany).order(ByteOrder.nativeOrder())
.asFloatBuffer();
}
public static ByteBuffer allocBytes(byte[] bytearray)
{
ByteBuffer bb = ByteBuffer.allocateDirect(bytearray.length * 1).order(
ByteOrder.nativeOrder());
bb.put(bytearray).flip();
return bb;
}
public static IntBuffer allocInts(int[] intarray)
{
IntBuffer ib = ByteBuffer.allocateDirect(intarray.length * 4).order(
ByteOrder.nativeOrder()).asIntBuffer();
ib.put(intarray).flip();
return ib;
}
public static FloatBuffer allocFloats(float[] floatarray)
{
FloatBuffer fb = ByteBuffer.allocateDirect(floatarray.length * 4).order(
ByteOrder.nativeOrder()).asFloatBuffer();
fb.put(floatarray).flip();
return fb;
}
}
The application worked fine for everybody but me. The teacher wasn't able to help me.
My computer:
- MacBook Pro (late 2011)
- AMD Radeon HD 6750M 512 MB
10.8.2 (12C60)
GL_VERSION: 2.1 ATI-1.0.29
- GL_VENDOR: ATI Technologies Inc.
- GL_RENDERER: AMD Radeon HD 6750M OpenGL Engine
Does anybody have any ideas, what could be wrong?