mesa: Only require Gen'ed name for glBind{Framebuffer,Renderbuffer} on desktop
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 1 Dec 2012 18:50:57 +0000 (10:50 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 4 Dec 2012 05:24:54 +0000 (21:24 -0800)
commita13f9dfbb88720c9ccca443e834106a80e69fedb
tree5c4973c96fb2dea6ac58d822dfe49966edd4c601
parent4d2f04cd6cb2fbaee54ab6e0f84cdb576ceeadcd
mesa: Only require Gen'ed name for glBind{Framebuffer,Renderbuffer} on desktop

Desktop OpenGL implementations that support either
GL_ARB_framebuffer_object or OpenGL 3.0 must require names from
glGenFramebuffers for glBindFramebuffer.  We have enforced this rule for
quite some time.  However, OpenGL ES 1.0, 2.0, and 3.0 implementations
are required to allow user-defined names (e.g., not from
glGenFramebuffers{OES,}).

The Intel drivers have hacked around this by not enabling
GL_ARB_framebuffer_object in an ES context.  Instead, just pick the
correct behavior in _mesa_BindFramebuffer based on the context API.

Chad pointed out in a review e-mail:

    "I'd like to point out, though, that glBindFramebufferEXT and
    glBindRenderbufferEXT are still broken on desktop GL because they
    don't accept user-genned names. But that fix belongs to a different
    series."

Currently glBindFramebufferEXT is an alias for glBindFramebuffer.
Unalising two functions presents some difficulty, so we'll have to
revisit this eventually.

v2: Perform same check in _mesa_BindRenderbuffer too.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> [v1]
src/mesa/main/fbobject.c