From 44d95cbf9561a3b8840fb2145c22e0411d22f26d Mon Sep 17 00:00:00 2001 From: mano-wii Date: Mon, 12 Aug 2019 12:10:44 -0300 Subject: Cleanup: DRW manager: Move `select_buffer.c` utilities out of the selection engine internals --- source/blender/draw/DRW_select_buffer.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'source/blender/draw/DRW_select_buffer.h') diff --git a/source/blender/draw/DRW_select_buffer.h b/source/blender/draw/DRW_select_buffer.h index cc3cb94175a..48fdbdfd803 100644 --- a/source/blender/draw/DRW_select_buffer.h +++ b/source/blender/draw/DRW_select_buffer.h @@ -33,6 +33,36 @@ struct View3D; struct ViewLayer; struct rcti; +struct BaseOffset { + /* For convenience only. */ + union { + uint offset; + uint face_start; + }; + union { + uint face; + uint edge_start; + }; + union { + uint edge; + uint vert_start; + }; + uint vert; +}; + +struct SELECTID_Context { + struct GPUFrameBuffer *framebuffer_select_id; + struct GPUTexture *texture_u32; + + struct BaseOffset *index_offsets; + uint objects_len; + uint last_object_drawn; + /** Total number of items `base_array_index_offsets[bases_len - 1].vert`. */ + uint last_index_drawn; + + short select_mode; +}; + /* select_buffer.c */ void DRW_select_buffer_context_create(struct Base **bases, const uint bases_len, @@ -62,4 +92,7 @@ uint DRW_select_buffer_find_nearest_to_point(const int center[2], const uint id_max, uint *dist); +/* select_engine.c */ +struct SELECTID_Context *DRW_select_engine_context_get(void); + #endif /* __DRW_SELECT_BUFFER_H__ */ -- cgit v1.2.3