Mercurial > sdl-ios-xcode
diff src/video/xbios/SDL_xbios_milan.h @ 4195:13de8ea401db SDL-1.2
Start Milan video support
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Sat, 19 Sep 2009 13:21:05 +0000 |
parents | |
children | 6405314a7c07 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/video/xbios/SDL_xbios_milan.h Sat Sep 19 13:21:05 2009 +0000 @@ -0,0 +1,125 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2009 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +/* + Milan Xbios video functions + + Patrice Mandin +*/ + +#ifndef _SDL_xbios_milan_h +#define _SDL_xbios_milan_h + +#include "SDL_xbios.h" + +/*--- Defines ---*/ + +/* Cookies */ +#ifndef C__MIL +#define C__MIL 0x5F4D494CL +#endif + +#ifndef C__VDI +#define C__VDI 0x5F564449L +#endif + +/* Vsetscreen() parameters */ +#define MI_MAGIC 0x4D49 + +enum { + CMD_GETMODE=0, + CMD_SETMODE, + CMD_GETINFO, + CMD_ALLOCPAGE, + CMD_FREEPAGE, + CMD_FLIPPAGE, + CMD_ALLOCMEM, + CMD_FREEMEM, + CMD_SETADR, + CMD_ENUMMODES +}; + +enum { + ENUMMODE_EXIT=0, + ENUMMODE_CONT +}; + +enum { + BLK_ERR=0, + BLK_OK, + BLK_CLEARED +}; + +/* bitFlags */ +#define STANDARD_BITS 1 +#define FALCON_BITS 2 +#define INTEL_BITS 8 + +/*--- Structures ---*/ + +typedef struct _scrblk { + unsigned long size; /* size of strukture */ + unsigned long blk_status; /* status bits of blk */ + unsigned long blk_start; /* Start Adress */ + unsigned long blk_len; /* length of memblk */ + unsigned long blk_x; /* x pos in total screen*/ + unsigned long blk_y; /* y pos in total screen */ + unsigned long blk_w; /* width */ + unsigned long blk_h; /* height */ + unsigned long blk_wrap; /* width in bytes */ +} __attribute__((packed)) SCRMEMBLK; + +typedef struct screeninfo { + unsigned long size; /* Size of structure */ + unsigned long devID; /* device id number */ + unsigned char name[64]; /* Friendly name of Screen */ + unsigned long scrFlags; /* some Flags */ + unsigned long frameadr; /* Adress of framebuffer */ + unsigned long scrHeight; /* visible X res */ + unsigned long scrWidth; /* visible Y res */ + unsigned long virtHeight; /* virtual X res */ + unsigned long virtWidth; /* virtual Y res */ + unsigned long scrPlanes; /* color Planes */ + unsigned long scrColors; /* # of colors */ + unsigned long lineWrap; /* # of Bytes to next line */ + unsigned long planeWarp; /* # of Bytes to next plane */ + unsigned long scrFormat; /* screen Format */ + unsigned long scrClut; /* type of clut */ + unsigned long redBits; /* Mask of Red Bits */ + unsigned long greenBits; /* Mask of Green Bits */ + unsigned long blueBits; /* Mask of Blue Bits */ + unsigned long alphaBits; /* Mask of Alpha Bits */ + unsigned long genlockBits;/* Mask of Genlock Bits */ + unsigned long unusedBits; /* Mask of unused Bits */ + unsigned long bitFlags; /* Bits organisation flags */ + unsigned long maxmem; /* max. memory in this mode */ + unsigned long pagemem; /* needed memory for one page */ + unsigned long max_x; /* max. possible width */ + unsigned long max_y; /* max. possible heigth */ +} __attribute__((packed)) SCREENINFO; + +/*--- Functions prototypes ---*/ + +void SDL_XBIOS_ListMilanModes(_THIS, int actually_add); + +#endif /* _SDL_xbios_milan_h */