[Mesa-dev] [PATCH 4/4] mesa: implement glFramebufferTexture

Jordan Justen jljusten at gmail.com
Tue Apr 30 10:34:44 PDT 2013


On Tue, Apr 30, 2013 at 10:04 AM, Ian Romanick <idr at freedesktop.org> wrote:
> On 04/27/2013 04:37 PM, Jordan Justen wrote:
>>
>> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
>> ---
>>   src/mapi/glapi/gen/GL3x.xml |    2 +-
>>   src/mesa/main/fbobject.c    |   17 +++++++++++++++++
>>   src/mesa/main/fbobject.h    |    4 ++++
>>   3 files changed, 22 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/mapi/glapi/gen/GL3x.xml b/src/mapi/glapi/gen/GL3x.xml
>> index 9ca3d47..5078f7b 100644
>> --- a/src/mapi/glapi/gen/GL3x.xml
>> +++ b/src/mapi/glapi/gen/GL3x.xml
>> @@ -607,7 +607,7 @@
>>       <param name="params" type="GLint64 *"/>
>>     </function>
>>
>> -  <function name="FramebufferTexture" offset="assign" exec="skip">
>> +  <function name="FramebufferTexture" offset="assign">
>>       <param name="target" type="GLenum"/>
>>       <param name="attachment" type="GLenum"/>
>>       <param name="texture" type="GLuint"/>
>> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
>> index 419e871..32dcc75 100644
>> --- a/src/mesa/main/fbobject.c
>> +++ b/src/mesa/main/fbobject.c
>> @@ -2402,6 +2402,23 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum
>> attachment,
>>
>>
>>   void GLAPIENTRY
>> +_mesa_FramebufferTexture(GLenum target, GLenum attachment,
>> +                         GLuint texture, GLint level)
>> +{
>> +   GET_CURRENT_CONTEXT(ctx);
>> +
>> +   if ((_mesa_is_desktop_gl(ctx) && ctx->Version >= 32) ||
>> +       ctx->Extensions.ARB_geometry_shader4) {
>
>
> This should be
>
>     if (_mesa_is_desktop_gl(ctx) && (ctx->Version >= 32 ||
>          ctx->Extensions.ARB_geometry_shader4))
>
> If a driver sets the ARB_geometry_shader4 bit in an ES context, this
> function should still generate GL_INVALID_OPERATION.
>
> Actually... is the _mesa_is_desktop_gl check even necessary?  This function
> shouldn't get put in the dispatch table for an ES context at all.  Right?

You are right. The _mesa_is_desktop_gl check is not necessary.

Hopefully at some point we can update the api_exec.c to handle GL
versions / extensions as well.

-Jordan


More information about the mesa-dev mailing list