Method: OpenXR::Session#initialize

Defined in:
lib/openxr/session.rb

#initialize(system, graphics_binding = nil) ⇒ Session

Returns a new instance of Session.

Parameters:

  • (System)
  • graphics_binding (XrGraphicsBinding) (defaults to: nil)

Raises:



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/openxr/session.rb', line 25

def initialize(system, graphics_binding = nil)
  @instance = system.instance
  @system   = system
  @struct   = XrSession.new

  # https://www.khronos.org/registry/OpenXR/specs/1.0/man/html/openxr.html#_xrsessioncreateinfo3
  request = XrSessionCreateInfo.new
  request[:base][:next] = graphics_binding
  request[:createFlags] = 0
  request[:systemId] = system.id

  # https://www.khronos.org/registry/OpenXR/specs/1.0/man/html/openxr.html#_xrcreatesession3
  case result = xrCreateSession(instance.handle, request, @struct)
    when XR_SUCCESS
    else raise OpenXR::Result.for(result).new(:xrCreateSession)
  end
end