[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