diff options
Diffstat (limited to 'src/sdl_video.erl')
-rw-r--r-- | src/sdl_video.erl | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/sdl_video.erl b/src/sdl_video.erl index 37e2947..06849c2 100644 --- a/src/sdl_video.erl +++ b/src/sdl_video.erl @@ -14,22 +14,49 @@ -module(sdl_video). +-export([get_closest_display_mode/2]). +-export([get_current_display_mode/1]). -export([get_current_driver/0]). +-export([get_desktop_display_mode/1]). -export([get_display_bounds/1]). -export([get_display_dpi/1]). +-export([get_display_mode/2]). -export([get_display_name/1]). -export([get_display_usable_bounds/1]). -export([get_driver/1]). +-export([get_num_display_modes/1]). -export([get_num_displays/0]). -export([get_num_drivers/0]). -export([start/1]). -export([stop/0]). +-type display_mode() :: #{ + format => sdl_pixels:pixel_format(), + w => integer(), + h => integer(), + refresh_rate => integer() +}. + +-spec get_closest_display_mode(integer(), display_mode()) -> display_mode() | undefined. +get_closest_display_mode(DisplayIndex, Mode) -> + esdl2:get_closest_display_mode(DisplayIndex, Mode), + receive {'_nif_thread_ret_', Ret} -> Ret end. + +-spec get_current_display_mode(integer()) -> display_mode() | undefined. +get_current_display_mode(DisplayIndex) -> + esdl2:get_current_display_mode(DisplayIndex), + receive {'_nif_thread_ret_', Ret} -> Ret end. + -spec get_current_driver() -> binary() | undefined. get_current_driver() -> esdl2:get_current_video_driver(), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_desktop_display_mode(integer()) -> display_mode() | undefined. +get_desktop_display_mode(DisplayIndex) -> + esdl2:get_desktop_display_mode(DisplayIndex), + receive {'_nif_thread_ret_', Ret} -> Ret end. + -spec get_display_bounds(integer()) -> sdl_rect:rect() | undefined. get_display_bounds(Index) -> esdl2:get_display_bounds(Index), @@ -42,6 +69,11 @@ get_display_dpi(Index) -> esdl2:get_display_dpi(Index), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_display_mode(integer(), integer()) -> display_mode() | undefined. +get_display_mode(DisplayIndex, Index) -> + esdl2:get_display_mode(DisplayIndex, Index), + receive {'_nif_thread_ret_', Ret} -> Ret end. + -spec get_display_name(integer()) -> binary() | undefined. get_display_name(Index) -> esdl2:get_display_name(Index), @@ -56,6 +88,11 @@ get_display_usable_bounds(Index) -> get_driver(Index) -> esdl2:get_video_driver(Index). +-spec get_num_display_modes(integer()) -> integer(). +get_num_display_modes(DisplayIndex) -> + esdl2:get_num_display_modes(DisplayIndex), + receive {'_nif_thread_ret_', Ret} -> Ret end. + -spec get_num_displays() -> integer(). get_num_displays() -> esdl2:get_num_video_displays(), |