summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorKevin Rogovin <[email protected]>2015-06-17 13:29:53 +0300
committerMartin Peres <[email protected]>2015-06-17 14:39:03 +0300
commit74987977a36a7111281e8fb53568dc05dbd3a8b4 (patch)
tree12744ff94c53156373b6dbeb7a7724ff1b0493c2 /src/mesa/main
parent6aa12994bdf0068a9804204a8f1b197cc0f46ec6 (diff)
mesa: add helper functions for geometry of gl_framebuffer
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. Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Kevin Rogovin <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/framebuffer.h28
-rw-r--r--src/mesa/main/mtypes.h8
2 files changed, 35 insertions, 1 deletions
diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h
index d02b86f20d9..ca286e9a992 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 e9f70e20612..a10e49434bc 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3174,7 +3174,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.
*/
bool _HasAttachments;