[Bf-blender-cvs] [5d8906fbe54] vr_scene_inspection: Fix compile errors and wrong pointer use

Julian Eisel noreply at git.blender.org
Mon Mar 16 17:27:01 CET 2020


Commit: 5d8906fbe549fab331c6b90471ed578f939e9d4b
Author: Julian Eisel
Date:   Mon Mar 16 17:26:32 2020 +0100
Branches: vr_scene_inspection
https://developer.blender.org/rB5d8906fbe549fab331c6b90471ed578f939e9d4b

Fix compile errors and wrong pointer use

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

M	intern/ghost/GHOST_Types.h
M	source/blender/makesrna/intern/rna_wm.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_xr.c

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

diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 7fb9ef3bc61..70c4d3ef00c 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -600,17 +600,6 @@ typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, GHOST_T
 
 struct GHOST_XrError;
 struct GHOST_XrDrawViewInfo;
-enum GHOST_TXrGraphicsBinding;
-
-typedef void (*GHOST_XrErrorHandlerFn)(const struct GHOST_XrError *);
-
-typedef void (*GHOST_XrSessionExitFn)(void *customdata);
-
-typedef void *(*GHOST_XrGraphicsContextBindFn)(enum GHOST_TXrGraphicsBinding graphics_lib);
-typedef void (*GHOST_XrGraphicsContextUnbindFn)(enum GHOST_TXrGraphicsBinding graphics_lib,
-                                                GHOST_ContextHandle graphics_context);
-typedef void (*GHOST_XrDrawViewFn)(const struct GHOST_XrDrawViewInfo *draw_view, void *customdata);
-
 /**
  * The XR view (i.e. the OpenXR runtime) may require a different graphics library than OpenGL. An
  * offscreen texture of the viewport will then be drawn into using OpenGL, but the final texture
@@ -627,6 +616,16 @@ typedef enum GHOST_TXrGraphicsBinding {
   /* For later */
   //  GHOST_kXrGraphicsVulkan,
 } GHOST_TXrGraphicsBinding;
+
+typedef void (*GHOST_XrErrorHandlerFn)(const struct GHOST_XrError *);
+
+typedef void (*GHOST_XrSessionExitFn)(void *customdata);
+
+typedef void *(*GHOST_XrGraphicsContextBindFn)(enum GHOST_TXrGraphicsBinding graphics_lib);
+typedef void (*GHOST_XrGraphicsContextUnbindFn)(enum GHOST_TXrGraphicsBinding graphics_lib,
+                                                GHOST_ContextHandle graphics_context);
+typedef void (*GHOST_XrDrawViewFn)(const struct GHOST_XrDrawViewInfo *draw_view, void *customdata);
+
 /* An array of GHOST_TXrGraphicsBinding items defining the candidate bindings to use. The first
  * available candidate will be chosen, so order defines priority. */
 typedef const GHOST_TXrGraphicsBinding *GHOST_XrGraphicsBindingCandidates;
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index bbec2bb7c7e..21ee3bcbe3f 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1269,7 +1269,8 @@ static void rna_wmClipboard_set(PointerRNA *UNUSED(ptr), const char *value)
 static PointerRNA rna_WindowManager_xr_session_state_get(PointerRNA *ptr)
 {
   wmWindowManager *wm = ptr->data;
-  return rna_pointer_inherit_refine(ptr, &RNA_XrSessionState, &wm->xr);
+  struct wmXrSessionState *state = WM_xr_session_state_handle_get(&wm->xr);
+  return rna_pointer_inherit_refine(ptr, &RNA_XrSessionState, state);
 }
 
 #  ifdef WITH_PYTHON
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 95e4ae62e7b..f5cd26d26c4 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -875,6 +875,7 @@ void WM_generic_user_data_free(struct wmGenericUserData *user_data);
 /* wm_xr.c */
 bool WM_xr_session_exists(const wmXrData *xr);
 bool WM_xr_session_is_ready(const wmXrData *xr);
+struct wmXrSessionState *WM_xr_session_state_handle_get(const wmXrData *xr);
 bool WM_xr_session_state_viewer_location_get(const wmXrData *xr, float r_location[3]);
 bool WM_xr_session_state_viewer_rotation_get(const wmXrData *xr, float r_rotation[4]);
 bool WM_xr_session_state_viewer_matrix_info_get(const wmXrData *xr,
diff --git a/source/blender/windowmanager/intern/wm_xr.c b/source/blender/windowmanager/intern/wm_xr.c
index 746e66735c3..d39e9b7a0b1 100644
--- a/source/blender/windowmanager/intern/wm_xr.c
+++ b/source/blender/windowmanager/intern/wm_xr.c
@@ -69,7 +69,7 @@ struct wmXrRuntimeData *wm_xr_runtime_data_create(void);
 void wm_xr_runtime_data_free(struct wmXrRuntimeData **runtime);
 void wm_xr_draw_view(const GHOST_XrDrawViewInfo *, void *);
 void *wm_xr_session_gpu_binding_context_create(GHOST_TXrGraphicsBinding);
-void wm_xr_session_gpu_binding_context_destroy(GHOST_TXrGraphicsBinding, void *);
+void wm_xr_session_gpu_binding_context_destroy(GHOST_TXrGraphicsBinding, GHOST_ContextHandle);
 wmSurface *wm_xr_session_surface_create(wmWindowManager *, unsigned int);
 void wm_xr_pose_to_viewmat(const GHOST_XrPose *pose, float r_viewmat[4][4]);



More information about the Bf-blender-cvs mailing list