[Bf-blender-cvs] [1e58e68c1a4] tmp-workbench-rewrite: DRW: Manager: Expose resource handle getter

Clément Foucault noreply at git.blender.org
Tue Mar 3 17:35:38 CET 2020


Commit: 1e58e68c1a48a7139bb047f2c31225f286a3183c
Author: Clément Foucault
Date:   Fri Feb 28 17:28:58 2020 +0100
Branches: tmp-workbench-rewrite
https://developer.blender.org/rB1e58e68c1a48a7139bb047f2c31225f286a3183c

DRW: Manager: Expose resource handle getter

===================================================================

M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager_data.c

===================================================================

diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index cbd39331680..9238b04a622 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -421,6 +421,9 @@ void DRW_buffer_add_entry_array(DRWCallBuffer *buffer, const void *attr[], uint
     DRW_buffer_add_entry_array(buffer, array, (sizeof(array) / sizeof(*array))); \
   } while (0)
 
+/* Can only be called during iter phase. */
+void DRW_object_resource_handle_get(uint32_t *chunk, uint32_t *id);
+
 void DRW_shgroup_state_enable(DRWShadingGroup *shgroup, DRWState state);
 void DRW_shgroup_state_disable(DRWShadingGroup *shgroup, DRWState state);
 void DRW_shgroup_stencil_mask(DRWShadingGroup *shgroup, uint mask);
diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c
index fbdabb44b15..bdfb24ab3e2 100644
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@ -562,6 +562,18 @@ static DRWResourceHandle drw_resource_handle_new(float (*obmat)[4], Object *ob)
   return handle;
 }
 
+void DRW_object_resource_handle_get(uint32_t *chunk, uint32_t *id)
+{
+  DRWResourceHandle handle = DST.ob_handle;
+  if (handle == 0) {
+    /* Handle not yet allocated. Return next handle. */
+    handle = DST.resource_handle;
+  }
+
+  *chunk = DRW_handle_chunk_get(&handle);
+  *id = DRW_handle_id_get(&handle);
+}
+
 static DRWResourceHandle drw_resource_handle(DRWShadingGroup *shgroup,
                                              float (*obmat)[4],
                                              Object *ob)



More information about the Bf-blender-cvs mailing list