Original Post
Hey there, When I wanted to pick up a sleeping project I ran into some problems. I'm making a simple multithreaded engine in C# using Tao for the OpenGL magic. The development PC runs Ubuntu with up to date NVIDIA drivers supporting Opengl2.0 etcetera. Loading the extensions also works, using:
if(GlExtensionLoader.IsExtensionSupported("GL_VERSION_2_0"))
{
System.Console.WriteLine("\tOpenGL 2.0");
GlExtensionLoader.LoadExtension("GL_VERSION_2_0");
}
else
throw new System.NotSupportedException("No opengl 2.0 support");
This shows the message I would like to see, namely "OpenGL 2.0" If everything is initialized the render thread starts its draw main loop, which calls a particle emitter, which checks if it has an initialized shader and if not, tries to make a shader object:
program = Gl.glCreateProgram();
if(program == 0)
throw new System.NotSupportedException("Seems like shaders are not supported, failed creating shader program ("+Gl.glGetError()+")");
And this Exception does get thrown and if I switch some orders so glCreateShader is called first, that also failed. Things I've checked: - The same problem occurs if I use the ARB variant - This code is run in the renderer thread - I'm pretty sure opengl has initialized correctly, IE, I already see a window popping up and if I disable the exceptions the program runs but without the shaders. Any ideas I could try?