Mercurial > sdl-ios-xcode
diff src/video/fbcon/SDL_fbvideo.h @ 0:74212992fb08
Initial revision
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Thu, 26 Apr 2001 16:45:43 +0000 |
parents | |
children | 63ec24e0575f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/video/fbcon/SDL_fbvideo.h Thu Apr 26 16:45:43 2001 +0000 @@ -0,0 +1,135 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997, 1998, 1999, 2000, 2001 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@devolution.com +*/ + +#ifdef SAVE_RCSID +static char rcsid = + "@(#) $Id$"; +#endif + +#ifndef _SDL_fbvideo_h +#define _SDL_fbvideo_h + +#include <sys/types.h> +#include <termios.h> +#include <linux/fb.h> + +#include "SDL_mouse.h" +#include "SDL_mutex.h" +#include "SDL_sysvideo.h" + +/* Hidden "this" pointer for the video functions */ +#define _THIS SDL_VideoDevice *this + + +/* This is the structure we use to keep track of video memory */ +typedef struct vidmem_bucket { + struct vidmem_bucket *prev; + unsigned int used; + char *base; + unsigned int size; + struct vidmem_bucket *next; +} vidmem_bucket; + +/* Information about the location of the surface in hardware memory */ +struct private_hwdata { + int x; + int y; +}; + +/* Private display data */ +struct SDL_PrivateVideoData { + int console_fd; + struct fb_var_screeninfo cache_vinfo; + struct fb_var_screeninfo saved_vinfo; + int saved_cmaplen; + __u16 *saved_cmap; + + int current_vt; + int saved_vt; + int keyboard_fd; + int saved_kbd_mode; + struct termios saved_kbd_termios; + + int mouse_fd; + + char *mapped_mem; + int mapped_memlen; + int mapped_offset; + char *mapped_io; + long mapped_iolen; + int flip_page; + char *flip_address[2]; + +#define NUM_MODELISTS 4 /* 8, 16, 24, and 32 bits-per-pixel */ + int SDL_nummodes[NUM_MODELISTS]; + SDL_Rect **SDL_modelist[NUM_MODELISTS]; + + vidmem_bucket surfaces; + int surfaces_memtotal; + int surfaces_memleft; + + SDL_mutex *hw_lock; + + void (*wait_vbl)(_THIS); +}; +/* Old variable names */ +#define console_fd (this->hidden->console_fd) +#define current_vt (this->hidden->current_vt) +#define saved_vt (this->hidden->saved_vt) +#define keyboard_fd (this->hidden->keyboard_fd) +#define saved_kbd_mode (this->hidden->saved_kbd_mode) +#define saved_kbd_termios (this->hidden->saved_kbd_termios) +#define mouse_fd (this->hidden->mouse_fd) +#define cache_vinfo (this->hidden->cache_vinfo) +#define saved_vinfo (this->hidden->saved_vinfo) +#define saved_cmaplen (this->hidden->saved_cmaplen) +#define saved_cmap (this->hidden->saved_cmap) +#define mapped_mem (this->hidden->mapped_mem) +#define mapped_memlen (this->hidden->mapped_memlen) +#define mapped_offset (this->hidden->mapped_offset) +#define mapped_io (this->hidden->mapped_io) +#define mapped_iolen (this->hidden->mapped_iolen) +#define flip_page (this->hidden->flip_page) +#define flip_address (this->hidden->flip_address) +#define SDL_nummodes (this->hidden->SDL_nummodes) +#define SDL_modelist (this->hidden->SDL_modelist) +#define surfaces (this->hidden->surfaces) +#define surfaces_memtotal (this->hidden->surfaces_memtotal) +#define surfaces_memleft (this->hidden->surfaces_memleft) +#define hw_lock (this->hidden->hw_lock) +#define wait_vbl (this->hidden->wait_vbl) + +/* Accelerator types that are supported by the driver, but are not + necessarily in the kernel headers on the system we compile on. +*/ +#ifndef FB_ACCEL_MATROX_MGAG400 +#define FB_ACCEL_MATROX_MGAG400 26 /* Matrox G400 */ +#endif +#ifndef FB_ACCEL_3DFX_BANSHEE +#define FB_ACCEL_3DFX_BANSHEE 31 /* 3Dfx Banshee */ +#endif + +/* These functions are defined in SDL_fbvideo.c */ +extern void FB_SavePaletteTo(_THIS, int palette_len, __u16 *area); +extern void FB_RestorePaletteFrom(_THIS, int palette_len, __u16 *area); + +#endif /* _SDL_fbvideo_h */