[Bf-blender-cvs] [f6e71179fe3] xr-actions-D9124: XR: Draw controller overlays in mirror view
Peter Kim
noreply at git.blender.org
Sun Nov 8 14:56:03 CET 2020
Commit: f6e71179fe30661fee9759016aa7a7b17478578d
Author: Peter Kim
Date: Sat Nov 7 17:44:56 2020 +0900
Branches: xr-actions-D9124
https://developer.blender.org/rBf6e71179fe30661fee9759016aa7a7b17478578d
XR: Draw controller overlays in mirror view
===================================================================
M source/blender/draw/intern/draw_manager.c
M source/blender/editors/space_view3d/view3d_draw.c
===================================================================
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 0754c1c10c8..c9f31ba8eff 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1413,6 +1413,14 @@ void DRW_draw_callbacks_post_scene(void)
ED_region_draw_cb_draw(DST.draw_ctx.evil_C, DST.draw_ctx.region, REGION_DRAW_POST_VIEW);
+ if (((v3d->flag & V3D_XR_SESSION_MIRROR) != 0) &&
+ ((v3d->flag2 & V3D_XR_SHOW_CONTROLLERS) != 0)) {
+ ARegionType *art = WM_xr_surface_region_type_get();
+ if (art) {
+ ED_region_surface_draw_cb_draw(art, REGION_DRAW_POST_VIEW);
+ }
+ }
+
/* Callback can be nasty and do whatever they want with the state.
* Don't trust them! */
DRW_state_reset();
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index b5fa2d048c1..00f6d3f4478 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -328,7 +328,6 @@ static void view3d_xr_mirror_setup(const wmWindowManager *wm,
ARegion *region,
const rcti *rect)
{
- RegionView3D *rv3d = region->regiondata;
float viewmat[4][4];
const float lens_old = v3d->lens;
const float clip_start_old = v3d->clip_start;
@@ -341,13 +340,17 @@ static void view3d_xr_mirror_setup(const wmWindowManager *wm,
if (!WM_xr_session_state_viewer_pose_matrix_info_get(
&wm->xr, from_selection_eye, viewmat, &v3d->lens, &v3d->clip_start, &v3d->clip_end)) {
/* Can't get info from XR session, use fallback values. */
- copy_m4_m4(viewmat, rv3d->viewmat);
+ copy_m4_m4(viewmat, ((RegionView3D *)region->regiondata)->viewmat);
v3d->lens = lens_old;
v3d->clip_start = clip_start_old;
v3d->clip_end = clip_end_old;
}
view3d_main_region_setup_view(depsgraph, scene, v3d, region, viewmat, NULL, rect);
+ if ((wm->xr.session_settings.draw_flags & V3D_OFSDRAW_XR_SHOW_CONTROLLERS) != 0) {
+ v3d->flag2 |= V3D_XR_SHOW_CONTROLLERS;
+ }
+
/* Reset overridden View3D data */
v3d->lens = lens_old;
v3d->clip_start = clip_start_old;
More information about the Bf-blender-cvs
mailing list