My app works great in Mac but isn’t working in Windows. At first, it wouldn’t compile until I added JUCE_OPENGL3=1 as a preprocessor macro but now it just crashes and what seems to be happening is that in OpenGlExtensionsFunctions, there are a couple functions not being made available which should be loaded dynamically (I guess?). These appear to be the JUCE_GL_VERTEXBUFFER_FUNCTIONS.
Are you using the OpenGLExtensionFunctions member provided by the active OpenGLContext or are you using your own declaration of the struct? In the latter case, you must call the initialise() function for the struct which performs the dynamic loading, as seen here:
I’m not 100% sure, since I never tested it myself. On Windows all OpenGL functions are provided via the wgl context functions. I think the one used in JUCE loads one of the oldest GL versions (2.1?) possible. This call is used:
Now isn’t it necessary to explicitly request a higher GL version (e.g. 3.1) to actually load the newer GL functions?
It seems for this purpose the WGL_ARB_create_context extension is provided. Similar to the pixel format extension, you have to query/load the extension first. Read more about it here: