FreeBSD Manual Pages
video_displaymodes(3) Arcan Lua API video_displaymodes(3) NAME video_displaymodes - Retrieve (or set) platform-specific output display options. SYNOPSIS modelist or nil or bool video_displaymodes( int:id ) video_displaymodes( int:id, int:modeid ) video_displaymodes( int:id, int:modeid, tbl:modeopts ) video_displaymodes( int:id, int:width, int:height ) DESCRIPTION Some video platforms allow the user to dynamically change how output is being mapped. This is necessary for multiple- display support and sup- port for changing video configuration and behavior when a user hotplugs a display. There are four ways of using this function. If it is called with no ar- guments, the underlying video platform will be requested to do a rescan of devices and connectors. This can stall graphics for noticable (100ms+) periods of time for some systems, but is necessary where we do not have working hotplug support. It is also an asynchronous process and any results will be propagated as _display_state events. Calling this function with a display index will return a table of pos- sible modes. Calling this function with a display index and a modeid obtained from a previous table from video_displaymodes will attempt to switch the dis- play to that mode and return success or not as a boolean. This can be further hinted by providing a modeopts table. The valid keys for this table are: *modeopts:number:vrr* for setting the refresh rate target (Hz) or a <= 0 value for letting the platform dynamically decide. *modeopts:int:quality* for setting the mode scanout quality. This overrides the behaviour for WORLDID and directly compos- ited output only. If another rendertarget has been set as the direct output through map_video_display then the properties of the rendertar- get store takes precendent. The permitted quality options are the same as for alloc_surface : ALLOC_QUALITY_LOW (typically RGB 565), AL- LOC_QUALITY_NORMAL ( RGB 888), ALLOC_QUALITY_HIGH (R10G10B10, "deep"), ALLOC_QUALITY_FLOAT 16 ( HDR - FP 16) or ALLOC_QUALITY_FLOAT 32 ( HDR - FP 32). Calling this function on a display that supports dynamic (caller-de- fined) modes, with a width and a height set will try to force that spe- cific dynamic mode and return success or not as a boolean. NOTES 1 possible modelist table members are: cardid, displayid, phy_width_mm, phy_height_mm, subpixel_layout, dynamic, primary, modeid, width, height, refresh, depth EXAMPLE function video_displaymodes0() local list = video_displaymodes(0); if (#list == 0) then return shutdown("video platform did not expose any modes."); end for i,v in ipairs(list) do print(string.format("(%d) display(%d:%d)" .. "dimensions(%d * %d) @ %d Hz, depth: %d0, v.modeid, v.cardid, v.displayid, v.width, v.height, v.refresh, v.depth) ); end print("swiching modes0); video_displaymodes(0, list[math.random(#list)].modeid); print("modes switched0); end MISUSE function video_displaymodes0() video_displaymodes("not acceptable"); end SEE ALSO: vidsys April 2025 video_displaymodes(3)
NAME | SYNOPSIS | DESCRIPTION | NOTES | EXAMPLE | MISUSE | SEE ALSO:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=video_displaymodes&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>