Retrieving Position, Physical Size, and Name
Monitor has very few public attributes, but here they are! For each of the entries below, assume:
monitor = CrystGLFW::Monitor.primary
position
You can retrieve the position of a Monitor, in screen coordinates, using the position method:
monitor_pos = monitor.position
puts "(#{monitor_pos[:x]}, #{monitor_pos[:y]})" # => "(0, 0)"
position returns a NamedTuple(x: Int32, y: Int32), where position[:x] represents the x-coordinate of the monitor's position and position[:y] represents the y-coordinate of the monitor's position. The position given is the location, in screen coordinates, of the monitor's top-left corner, relative to the virtual screen.
position must be called from within a run block definition.
physical_size
GLFW can estimate the physical dimensions of a monitor, measured in millimeters:
dimensions = monitor.physical_size
puts "The monitor is approximately #{dimensions[:width]} mm wide."
puts "And it is approximately #{dimensions[:height]} mm tall."
physical_size returns a NamedTuple(width: Int32, height: Int32), where physical_size[:width] returns the physical width of the monitor in millimeters and physical_size[:height] returns the physical height of the monitor in millimeters.
physical_size must be called from within a run block definition.
name
Each Monitor has a model name given to it by its manufacturer, which can be retrieved with name:
monitor_name = monitor.name
puts "The monitor's name is #{monitor_name}."
name returns a String that contains the monitor's given name.
name must be called from within a run block definition.