import sys

sys.path.insert(0, '.')

import xr_examples

import xr_examples.hello_xr

xr_examples.hello_xr
Out[6]: <module 'xr_examples.hello_xr' from 'C:\\cygwin64\\home\\goddard\\ucsf\\pyopenxr_examples\\xr_examples\\hello_xr\\__init__.py'>

from xr_examples.hello_xr.main import main

main()
03/11/25 07:56:31.772 main INFO: Press any key to shutdown...
03/11/25 07:56:32.376 openxr_program INFO: Available Layers: (2)
03/11/25 07:56:32.390 openxr_program INFO: Instance RuntimeName=Acer XR Runtime RuntimeVersion=1.2.1001
03/11/25 07:56:32.391 openxr_program INFO: Available View Configuration Types: (1)
03/11/25 07:56:32.392 openxr_program INFO: Available Environment Blend Mode count : (1)
03/11/25 07:56:32.392 openxr_program INFO: Environment Blend Mode (1) : (Selected)
03/11/25 07:56:32.578 openxr_program INFO: Available reference spaces: 3
03/11/25 07:56:32.579 openxr_program INFO: System Properties: Name=SpatialLabs Display Driver VendorId=1282
03/11/25 07:56:32.580 openxr_program INFO: System Graphics Properties: MaxWidth=1920 MaxHeight=1080 MaxLayers=16
03/11/25 07:56:32.580 openxr_program INFO: System Tracking Properties: OrientationTracking=True PositionTracking=True
03/11/25 07:56:32.581 openxr_program INFO: Creating swapchain for view 0 with dimensions Width=1920 Height=1080 SampleCount=1
03/11/25 07:56:32.584 openxr_program INFO: Creating swapchain for view 1 with dimensions Width=1920 Height=1080 SampleCount=1
03/11/25 07:56:32.588 openxr_program INFO: XrEventDataSessionStateChanged: state 0->1 session=0x3000003 time=659513800
03/11/25 07:56:32.588 openxr_program INFO: XrEventDataSessionStateChanged: state 1->2 session=0x3000003 time=697457200
03/11/25 07:56:32.602 openxr_program INFO: XrEventDataSessionStateChanged: state 2->3 session=0x3000003 time=791657100
03/11/25 07:56:32.602 openxr_program INFO: XrEventDataSessionStateChanged: state 3->4 session=0x3000003 time=791660100
03/11/25 07:56:32.603 openxr_program INFO: XrEventDataSessionStateChanged: state 4->5 session=0x3000003 time=791660600
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[8], line 1
----> 1 main()

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\main.py:98, in main()
     95     except xr.exception.SessionNotFocused:
     96         # TODO: C++ code does not need this conditional. Why does python?
     97         pass
---> 98     program.render_frame()
     99 else:
    100     # Throttle loop since xrWaitFrame won't be called.
    101     time.sleep(0.250)

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\openxr_program.py:759, in OpenXRProgram.render_frame(self)
    755 projection_layer_views = (xr.CompositionLayerProjectionView * 2)(
    756     xr.CompositionLayerProjectionView(),
    757     xr.CompositionLayerProjectionView())
    758 if frame_state.should_render:
--> 759     if self.render_layer(frame_state.predicted_display_time, projection_layer_views, layer):
    760         layers.append(byref(layer))
    762 xr.end_frame(
    763     session=self.session,
    764     frame_end_info=xr.FrameEndInfo(
   (...)
    768     ),
    769 )

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\openxr_program.py:792, in OpenXRProgram.render_layer(self, predicted_display_time, projection_layer_views, layer)
    790     return False  # There are no valid tracking poses for the views.
    791 assert view_count_output == view_capacity_input
--> 792 assert view_count_output == len(self.config_views)
    793 assert view_count_output == len(self.swapchains)
    794 assert view_count_output == len(projection_layer_views)

AssertionError:
03/11/25 07:56:45.321 ipkernel INFO: Exception in execute request:
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[8], line 1
----> 1 main()

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\main.py:98, in main()
     95     except xr.exception.SessionNotFocused:
     96         # TODO: C++ code does not need this conditional. Why does python?
     97         pass
---> 98     program.render_frame()
     99 else:
    100     # Throttle loop since xrWaitFrame won't be called.
    101     time.sleep(0.250)

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\openxr_program.py:759, in OpenXRProgram.render_frame(self)
    755 projection_layer_views = (xr.CompositionLayerProjectionView * 2)(
    756     xr.CompositionLayerProjectionView(),
    757     xr.CompositionLayerProjectionView())
    758 if frame_state.should_render:
--> 759     if self.render_layer(frame_state.predicted_display_time, projection_layer_views, layer):
    760         layers.append(byref(layer))
    762 xr.end_frame(
    763     session=self.session,
    764     frame_end_info=xr.FrameEndInfo(
   (...)
    768     ),
    769 )

File C:\cygwin64\home\goddard\ucsf\pyopenxr_examples\xr_examples\hello_xr\openxr_program.py:792, in OpenXRProgram.render_layer(self, predicted_display_time, projection_layer_views, layer)
    790     return False  # There are no valid tracking poses for the views.
    791 assert view_count_output == view_capacity_input
--> 792 assert view_count_output == len(self.config_views)
    793 assert view_count_output == len(self.swapchains)
    794 assert view_count_output == len(projection_layer_views)

AssertionError:
