https://bugs.freedesktop.org/show_bug.cgi?id=75779
Priority: medium Bug ID: 75779 Assignee: mesa-dev@lists.freedesktop.org Summary: wglCreateContextAttribsARB is missing in software rasterizer and does not work properly in gallium gdi target either Severity: major Classification: Unclassified OS: Windows (All) Reporter: turbolo...@gmail.com Hardware: x86 (IA32) Status: NEW Version: 10.0 Component: Other Product: Mesa I have built both 10.0.1 and 10.0.3 on Windows XP and am trying to make framebuffers work using glGenFrameBuffers. So I tried all variations with the normal wglCreateContext but that does not work. The function is there but it fails. The reported version is like 2.1 or something. So now I try with wglCreateContextAttribsARB and it is not working either, except when the version in the attribs is 2.1 or less. The function wglCreateContextAttribsARB is simply not there with the windows gdi target, but is there with the gallium gdi target. However whether a 2.1 context is created with wglCreateContextAttribsARB or with wglCreateContext there is an error as a result of calling glGenFrameBuffers etc... When requesting a 3.1 context using wglCreateContextAttribsARB it returns zero and there is no error reported. The WGL_ARB_create_context string is nowhere to be seen, and yes I did create a dummy context before reading in the function pointers and checking the extensions. I have been trying for days now to make it work and it would be really good if even the software rasterizer can make a 3.1 context but nothing seems to be there. Even if it does not have programs and shaders that is fine but how do you make glGenFrameBuffers work on windows? The code is something like this if Assigned(glCtx.wglCreateContextAttribsArb) then begin fillchar(attribs,sizeof(attribs),0); attribs[0] := WGL_CONTEXT_MAJOR_VERSION_ARB; attribs[1] := 2; attribs[2] := WGL_CONTEXT_MINOR_VERSION_ARB; attribs[3] := 1; attribs[4] := WGL_CONTEXT_FLAGS_ARB; attribs[5] := 0; //attribs[6] := WGL_CONTEXT_PROFILE_MASK_ARB; //attribs[7] := WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB; attribs[8] := 0; attribs[9] := 0; //temp_rc := glCtx^.wglCreateContext(dc); //wglMakeCurrent(dc,temp_rc); // These calls to glGEtIntegerV do not work either. //glCtx.glGetIntegerv(GL_MAJOR_VERSION, @ver[0]); //glCtx.glGetIntegerv(GL_MINOR_VERSION, @ver[1]); //if ver[0] = 345 then throw_x; fRc := glCtx.wglCreateContextAttribsArb(dc,0,@attribs[0]); //wglMakeCurrent(dc,fRc); //wglMakeCurrent(0,0); //wglDeleteContext(temp_rc); //wglMakeCurrent(dc,fRc); //glGenFrameBuffers(); if glCtx^.glGetError() <> 0 then fRc := 0; end; if fRc = 0 then begin fRc := glCtx^.wglCreateContext(dc); if (fRc = 0) then throw_x; end; So please to save other people time if all this is not possible, change the documentation where it says OpenGL 3.1 is supported to something like that it in fact simply is not there. Or is it me? It says that OpenGl 3.1 is supported but then trails off with saying you only get an OpenGL 3.1 context by specifying one. So how does that work? -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev