[Bf-blender-cvs] [fa233693733] xr-controller-support: Merge branch 'master' into xr-controller-support

Peter Kim noreply at git.blender.org
Thu Sep 23 04:42:10 CEST 2021


Commit: fa233693733c5efa4c4451cf088acefcef54ca16
Author: Peter Kim
Date:   Wed Sep 22 19:24:20 2021 -0700
Branches: xr-controller-support
https://developer.blender.org/rBfa233693733c5efa4c4451cf088acefcef54ca16

Merge branch 'master' into xr-controller-support

===================================================================



===================================================================

diff --cc release/scripts/addons
index f51fa40f110,ecf30de46c3..a85360cbdfb
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit f51fa40f1107cee7002181da1c78195b6e263bb6
 -Subproject commit ecf30de46c368ffddad259c125402a38e6093382
++Subproject commit a85360cbdfbbee2bb46bcb93900f597a989bd33b
diff --cc source/blender/editors/space_view3d/view3d_select.c
index 9d72a05d07c,39aed131ea1..bca4f8b4857
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@@ -2813,60 -2813,11 +2813,62 @@@ static int view3d_select_invoke(bContex
  {
    RNA_int_set_array(op->ptr, "location", event->mval);
  
-   return view3d_select_exec(C, op);
+   const int retval = view3d_select_exec(C, op);
+ 
+   return WM_operator_flag_only_pass_through_on_press(retval, event);
  }
  
 +static int view3d_select_invoke_3d(bContext *C, wmOperator *op, const wmEvent *event)
 +{
 +  BLI_assert(event->type == EVT_XR_ACTION);
 +  BLI_assert(event->custom == EVT_DATA_XR);
 +  BLI_assert(event->customdata);
 +
 +  const wmXrActionData *actiondata = event->customdata;
 +  Depsgraph *depsgraph = CTX_data_ensure_evaluated_depsgraph(C);
 +  Scene *scene = CTX_data_scene(C);
 +  View3D *v3d = CTX_wm_view3d(C);
 +  ARegion *region = CTX_wm_region(C);
 +  RegionView3D *rv3d = region->regiondata;
 +  wmWindowManager *wm = CTX_wm_manager(C);
 +  wmXrData *xr = &wm->xr;
 +  float lens_prev;
 +  float clip_start_prev, clip_end_prev;
 +  float viewmat_prev[4][4];
 +  int mval[2];
 +  int retval;
 +
 +  /* Since this function is called in a window context, we need to replace the
 +   * window view parameters with the XR surface counterparts to get a correct
 +   * result for GPU select. */
 +  ED_view3d_view_params_get(v3d, rv3d, &lens_prev, &clip_start_prev, &clip_end_prev, viewmat_prev);
 +  ED_view3d_view_params_set(depsgraph,
 +                            scene,
 +                            v3d,
 +                            region,
 +                            actiondata->eye_lens,
 +                            xr->session_settings.clip_start,
 +                            xr->session_settings.clip_end,
 +                            actiondata->eye_viewmat);
 +
 +  map_to_pixel(mval,
 +               actiondata->controller_loc,
 +               actiondata->eye_viewmat,
 +               rv3d->winmat,
 +               region->winx,
 +               region->winy);
 +
 +  RNA_int_set_array(op->ptr, "location", mval);
 +
 +  retval = view3d_select_exec(C, op);
 +
 +  /* Restore window view. */
 +  ED_view3d_view_params_set(
 +      depsgraph, scene, v3d, region, lens_prev, clip_start_prev, clip_end_prev, viewmat_prev);
 +
 +  return retval;
 +}
 +
  void VIEW3D_OT_select(wmOperatorType *ot)
  {
    PropertyRNA *prop;



More information about the Bf-blender-cvs mailing list