[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