[SOLVED] Changing OpenGL version to 3.2 causing error

Started by Knokk, January 27, 2014, 08:39:20

Previous topic - Next topic

Knokk

I was reading this tutorial on how to set the OpenGL version to 3.2 here:
http://lwjgl.org/wiki/index.php?title=Version_selection

The code in my display creation before this error became a problem was:
public static void createDisplay()
	{
		try
		{
			Display.setDisplayMode(new DisplayMode(width, height));
			Display.setVSyncEnabled(true);
			Display.setTitle(Main.title);
			Display.create();
		}
		catch (LWJGLException e)
		{
			e.printStackTrace();
		}
		
		System.out.println("OS: " + System.getProperty("os.name"));
		System.out.println("OS Version: " + System.getProperty("os.version"));
		System.out.println("LWJGL Version: " + org.lwjgl.Sys.getVersion());
		System.out.println("OpenGL Version: " + GL11.glGetString(GL11.GL_VERSION));
	}


The only change I made was context attributes and pixel format:
public static void createDisplay()
	{
		PixelFormat pf = new PixelFormat();
		ContextAttribs ca = new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true);
		
		try
		{
			Display.setDisplayMode(new DisplayMode(width, height));
			Display.setVSyncEnabled(true);
			Display.setTitle(Main.title);
			Display.create(pf, ca);
		}
		catch (LWJGLException e)
		{
			e.printStackTrace();
		}
		
		System.out.println("OS: " + System.getProperty("os.name"));
		System.out.println("OS Version: " + System.getProperty("os.version"));
		System.out.println("LWJGL Version: " + org.lwjgl.Sys.getVersion());
		System.out.println("OpenGL Version: " + GL11.glGetString(GL11.GL_VERSION));
	}


The OpenGL version is printed as 3.2 instead of my driver's 4.3, which is good. The problem is when I start referencing OpenGL functions like glMatrixMode()

Error code:
Exception in thread "main" java.lang.IllegalStateException: Function is not supported
	at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
	at org.lwjgl.opengl.GL11.glMatrixMode(GL11.java:2075)


This wasn't a problem before the change stated, so I know it has to do with changing the OpenGL context. I haven't been able to find any solutions online after a few days of research. There was one post I read on stackoverflow where a guy had the same problem, but it was completely ignored. Does anyone have any idea what could be causing this? I'm using LWJGL v2.9.1

Knokk

I did some thinking about the error and realized it's probably something to do with deprecated functionality. I could be wrong, but I tried removing my calls to glMatrixMode since I'm using my own matrices anyway, and everything seems to be working fine. Problem solved. :)

spasi

You can restore the deprecated functionality by changing:

// this
ContextAttribs ca = new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true);
// to this
ContextAttribs ca = new ContextAttribs(3, 2).withProfileCompatibility(true);