[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(®ion);
+ 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