# Kconfig - SDL based emulated display configuration options

#
# Copyright (c) 2018 Jan Van Winkel <jan.van_winkel@dxplore.eu>
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig SDL_DISPLAY
	bool "SDL based emulated display"
	depends on BOARD_NATIVE_POSIX
	select HAS_SDL
	help
	  Enable SDL based emulated display compliant with display driver API.

if SDL_DISPLAY

config SDL_DISPLAY_DEV_NAME
	string "SDL display device name"
	default "SDL_DISPLAY"

config SDL_DISPLAY_X_RES
	int "X resolution for SDL display"
	default 320

config SDL_DISPLAY_Y_RES
	int "Y resolution for SDL display"
	default 240

choice SDL_DISPLAY_DEFAULT_PIXEL_FORMAT
	prompt "Default pixel format"
	default SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_ARGB_8888
	help
	  Default pixel format to be used by the display

	config SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_ARGB_8888
		bool "ARGB 8888"

	config SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_RGB_888
		bool "RGB 888"

	config SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_MONO01
		bool "Mono Black=0"

	config SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_MONO10
		bool "Mono Black=1"

endchoice

endif # SDL_DISPLAY
