Created attachment 381 [details] Patch for WindowsWGLGraphicsConfigurationFactory.java I'm creating a GLCanvas with a GLCapabilities object that requests non-hardware-accelerated capabilities and a custom chooser like in this code snippet: GLCapabilities caps = new GLCapabilities(null); caps.setHardwareAccelerated(false); GLCanvas canvas = new GLCanvas(caps, new CustomCapabilitiesChooser(), null, null); The problem is that the provided chooser's chooseCapabilities method is only supplied GLCapabilities that are hardware accelerated. After further investigation I could find the reason for this in the class WindowsWGLGraphicsConfigurationFactory. The method updateGraphicsConfiguration tries to use updateGraphicsConfigurationARB (which only provides hardware-accelerated capabilities) and only if that method fails, it uses updateGraphicsConfigurationGDI (which also provides non-hardware-accelerated capabilities): if( !updateGraphicsConfigurationARB((WindowsWGLDrawableFactory)factory, config, chooser, hdc, extHDC, pfdIDs) ) { updateGraphicsConfigurationGDI(config, chooser, hdc, extHDC, pfdIDs); } I have implemented a simple solution by checking if non-hardware-accelerated capabilities are requested and skipping the ...ARB method in that case, which is attached as a patch. A better solution might be to supply both the capabilities from ARB and GDI to the chooser.
Sounds great. Can you send me a git patch or pull request so we can preserve your authorship ? I guess the non hw-accel use case is sort of limited and we can live w/ this solution, i.e. skipping the ARB caps if software rendering is requested.
Created attachment 382 [details] GIT patch This is the patch in a format that can be applied using git apply
jogl commit f67d310743cd6dee3d3005b96b61e9adae628899 Thx.