From 1d4888d53e1c726f9f5f16ca3e29da89ae8e0545 Mon Sep 17 00:00:00 2001 From: Patrice Mandin Date: Sat, 19 Sep 2009 13:31:41 +0000 Subject: [PATCH] Enumerates custom modes --- src/video/xbios/SDL_xbios_milan.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/video/xbios/SDL_xbios_milan.c b/src/video/xbios/SDL_xbios_milan.c index fe8c8e7af..12c7c3e47 100644 --- a/src/video/xbios/SDL_xbios_milan.c +++ b/src/video/xbios/SDL_xbios_milan.c @@ -57,6 +57,28 @@ static const Uint8 mode_bpp[4]={ 8, 15, 16, 32 }; +/*--- Variables ---*/ + +static int enum_actually_add; +static SDL_VideoDevice *enum_this; + +/*--- Functions ---*/ + +static unsigned long /*cdecl*/ enumfunc(SCREENINFO *inf, unsigned long flag) +{ + xbiosmode_t modeinfo; + + modeinfo.number = inf->devID; + modeinfo.width = inf->scrWidth; + modeinfo.height = inf->scrHeight; + modeinfo.depth = inf->scrPlanes; + modeinfo.doubleline = SDL_FALSE; + + SDL_XBIOS_AddMode(enum_this, enum_actually_add, &modeinfo); + + return ENUMMODE_CONT; +} + void SDL_XBIOS_ListMilanModes(_THIS, int actually_add) { int i; @@ -84,4 +106,7 @@ void SDL_XBIOS_ListMilanModes(_THIS, int actually_add) } /* Read custom created modes */ + enum_this = this; + enum_actually_add = actually_add; + VsetScreen(-1, &enumfunc, MI_MAGIC, CMD_ENUMMODES); }