The game I'm working on uses destination alpha, and I'm setting up the display like this:
Display.create(new PixelFormat(org.lwjgl.opengl.Display.getDisplayMode().getBitsPerPixel(), 8, 24, 8, 0));
It looks like a few players are getting a "org.lwjgl.LWJGLException: Pixel format not accelerated" exception here. In most cases, it's resolved by updating to the latest drivers, but in a few cases, for reasonably-new Nvidia graphics cards, it's not. One of the players was kind enough to run some tests, and it looks like anything other than a 0 for the number of alpha bits requested (2nd parameter to PixelFormat constructor) causes this exception.
The questions I have are:
- Is using destination alpha that unusual? In other words, is it something so rarely used that it's a mistake to be using it because it could go away?
- Is it likely that the graphics card actually doesn't support it, or is it more likely a driver issue, or are there perhaps some settings that can be tweaked on the user's PC to allow destination alpha to work?
Here is a more detailed stack trace, in case that's useful:
org.lwjgl.LWJGLException: Pixel format not accelerated
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:185)
at org.lwjgl.opengl.Display.createWindow(Display.java:317)
at org.lwjgl.opengl.Display.create(Display.java:857)
at org.lwjgl.opengl.Display.create(Display.java:785)
Edit: It appears changing the display mode to 32 bit fixed this. Apologies for, as it turns out, creating this thread unnecessarily.