With the whitespace issues pointed out by Ilia fixed (which I noticed too... lol), this patch is
Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> On 05/27/2015 02:49 AM, Kevin Rogovin wrote: > Add convenience helper functions for fetching geometry of gl_framebuffer > that return the geometry of the gl_framebuffer instead of the geometry of > the buffers of the gl_framebuffer when then the gl_framebuffer has no > attachments. > > v2: > Split from patch "mesa:helper-conveniance functions for drivers to implement > ARB_framebuffer_no_attachment". > > v3: > Add error check for functions of extension. > Implement DSA functions dependent on extension. > > v4: > Formatting fixes. > > Signed-off-by: Kevin Rogovin <kevin.rogo...@intel.com> > --- > src/mesa/main/framebuffer.h | 28 ++++++++++++++++++++++++++++ > src/mesa/main/mtypes.h | 8 +++++++- > 2 files changed, 35 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h > index d02b86f..8b2aa34 100644 > --- a/src/mesa/main/framebuffer.h > +++ b/src/mesa/main/framebuffer.h > @@ -76,6 +76,34 @@ _mesa_scissor_bounding_box(const struct gl_context *ctx, > const struct gl_framebuffer *buffer, > unsigned idx, int *bbox); > > +static inline GLuint > +_mesa_geometric_width(const struct gl_framebuffer *buffer) > +{ > + return buffer->_HasAttachments ? > + buffer->Width : buffer->DefaultGeometry.Width; > +} > + > +static inline GLuint > +_mesa_geometric_height(const struct gl_framebuffer *buffer) > +{ > + return buffer->_HasAttachments ? > + buffer->Height : buffer->DefaultGeometry.Height; > +} > + > +static inline GLuint > +_mesa_geometric_samples(const struct gl_framebuffer *buffer) > +{ > + return buffer->_HasAttachments ? > + buffer->Visual.samples : buffer->DefaultGeometry.NumSamples; > +} > + > +static inline GLuint > +_mesa_geometric_layers(const struct gl_framebuffer *buffer) > +{ > + return buffer->_HasAttachments ? > + buffer->MaxNumLayers : buffer->DefaultGeometry.Layers; > +} > + > extern void > _mesa_update_draw_buffer_bounds(struct gl_context *ctx, > struct gl_framebuffer *drawFb); > diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h > index 5abbc0a..08316dc 100644 > --- a/src/mesa/main/mtypes.h > +++ b/src/mesa/main/mtypes.h > @@ -3187,7 +3187,13 @@ struct gl_framebuffer > * GL_ARB_framebuffer_no_attachments must check for the flag > _HasAttachments > * and if GL_FALSE, must then use the values in DefaultGeometry to > initialize > * its viewport, scissor and so on (in particular _Xmin, _Xmax, _Ymin and > - * _Ymax do NOT take into account _HasAttachments being false) > + * _Ymax do NOT take into account _HasAttachments being false). To get the > + * geometry of the framebuffer, the helper functions > + * _mesa_geometric_width(), > + * _mesa_geometric_height(), > + * _mesa_geometric_samples() and > + * _mesa_geometric_layers() > + * are available that check _HasAttachments. > */ > GLboolean _HasAttachments; > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev