[Mesa-dev] [PATCH 2/5] intel: Define intel_miptree_create_for_renderbuffer()

Chad Versace chad at chad-versace.us
Thu Oct 27 18:55:48 PDT 2011


This function creates a miptree that is suitable as the storage for
a non-texture renderbuffer.

This commit is prerequisite for replacing intel_renderbuffer::region with
a miptree.

Signed-off-by: Chad Versace <chad at chad-versace.us>
---
 src/mesa/drivers/dri/intel/intel_mipmap_tree.c |   21 +++++++++++++++++++++
 src/mesa/drivers/dri/intel/intel_mipmap_tree.h |   15 +++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index 19f151f..33247d2 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -171,6 +171,27 @@ intel_miptree_create_for_region(struct intel_context *intel,
    return mt;
 }
 
+struct intel_mipmap_tree*
+intel_miptree_create_for_renderbuffer(struct intel_context *intel,
+                                      gl_format format,
+                                      uint32_t tiling,
+                                      uint32_t cpp,
+                                      uint32_t width,
+                                      uint32_t height)
+{
+   struct intel_region *region;
+   struct intel_mipmap_tree *mt;
+
+   region = intel_region_alloc(intel->intelScreen,
+                               tiling, cpp, width, height, true);
+   if (!region)
+      return NULL;
+
+   mt = intel_miptree_create_for_region(intel, GL_TEXTURE_2D, format, region);
+   intel_region_release(&region);
+   return mt;
+}
+
 void
 intel_miptree_reference(struct intel_mipmap_tree **dst,
                         struct intel_mipmap_tree *src)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index e29b943..611519d 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -151,6 +151,21 @@ intel_miptree_create_for_region(struct intel_context *intel,
 				gl_format format,
 				struct intel_region *region);
 
+/**
+ * Create a miptree appropriate as the storage for a non-texture renderbuffer.
+ * The miptree has the following properties:
+ *     - The target is GL_TEXTURE_2D.
+ *     - There are no levels other than the base level 0.
+ *     - Depth is 1.
+ */
+struct intel_mipmap_tree*
+intel_miptree_create_for_renderbuffer(struct intel_context *intel,
+                                      gl_format format,
+                                      uint32_t tiling,
+                                      uint32_t cpp,
+                                      uint32_t width,
+                                      uint32_t height);
+
 int intel_miptree_pitch_align (struct intel_context *intel,
 			       struct intel_mipmap_tree *mt,
 			       uint32_t tiling,
-- 
1.7.6.4



More information about the mesa-dev mailing list