diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-08-12 18:10:44 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-08-12 18:10:44 +0300 |
commit | 44d95cbf9561a3b8840fb2145c22e0411d22f26d (patch) | |
tree | e0ed28bf7fc2e92a21afb0d14c9ab76b304676fd /source/blender/draw/DRW_select_buffer.h | |
parent | 37b4384b59c09684ac4ece5e39bf20187968f737 (diff) |
Cleanup: DRW manager: Move `select_buffer.c` utilities out of the selection engine internals
Diffstat (limited to 'source/blender/draw/DRW_select_buffer.h')
-rw-r--r-- | source/blender/draw/DRW_select_buffer.h | 33 |
1 files changed, 33 insertions, 0 deletions
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__ */ |