diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-04-08 19:23:40 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-04-08 19:23:40 +0300 |
commit | e15320568a29e163b32e261dc1aaee22404e0dac (patch) | |
tree | 8fd74e1dbd0bde5839e846c2f47da028a4a3ce06 /source/blender/draw/engines/overlay/overlay_engine.c | |
parent | 3039b215ba2af5ed63446aba72244b6bc5a4fd18 (diff) |
Curves edit mode: show dots for points
This adds support to show dots for the curves points when in edit mode,
using a specific overlay.
This also adds `DRW_curves_batch_cache_create_requested` which for now
only creates the point buffer for the newly added `edit_points` batch.
In the future, this will also handle other edit mode overlays, and
probably also replace the current curves batch cache creation.
Maniphest Tasks: T95770
Differential Revision: https://developer.blender.org/D14262
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_engine.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_engine.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_engine.c b/source/blender/draw/engines/overlay/overlay_engine.c index f9fec171ddd..64bd34c2a23 100644 --- a/source/blender/draw/engines/overlay/overlay_engine.c +++ b/source/blender/draw/engines/overlay/overlay_engine.c @@ -111,6 +111,9 @@ static void OVERLAY_engine_init(void *vedata) case CTX_MODE_EDIT_MESH: OVERLAY_edit_mesh_init(vedata); break; + case CTX_MODE_EDIT_CURVES: + OVERLAY_edit_curves_init(vedata); + break; default: /* Nothing to do. */ break; @@ -182,9 +185,11 @@ static void OVERLAY_cache_init(void *vedata) case CTX_MODE_WEIGHT_GPENCIL: OVERLAY_edit_gpencil_cache_init(vedata); break; + case CTX_MODE_EDIT_CURVES: + OVERLAY_edit_curves_cache_init(vedata); + break; case CTX_MODE_SCULPT_CURVES: case CTX_MODE_OBJECT: - case CTX_MODE_EDIT_CURVES: break; default: BLI_assert_msg(0, "Draw mode invalid"); @@ -250,6 +255,7 @@ static bool overlay_object_is_edit_mode(const OVERLAY_PrivateData *pd, const Obj case OB_FONT: return pd->ctx_mode == CTX_MODE_EDIT_TEXT; case OB_CURVES: + return pd->ctx_mode == CTX_MODE_EDIT_CURVES; case OB_POINTCLOUD: case OB_VOLUME: /* No edit mode yet. */ @@ -389,6 +395,9 @@ static void OVERLAY_cache_populate(void *vedata, Object *ob) case OB_FONT: OVERLAY_edit_text_cache_populate(vedata, ob); break; + case OB_CURVES: + OVERLAY_edit_curves_cache_populate(vedata, ob); + break; } } else if (in_pose_mode && draw_bones) { @@ -671,6 +680,9 @@ static void OVERLAY_draw_scene(void *vedata) break; case CTX_MODE_SCULPT_CURVES: break; + case CTX_MODE_EDIT_CURVES: + OVERLAY_edit_curves_draw(vedata); + break; default: break; } |