diff options
Diffstat (limited to 'backends/gp32/graphics.h')
-rw-r--r-- | backends/gp32/graphics.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/backends/gp32/graphics.h b/backends/gp32/graphics.h new file mode 100644 index 0000000000..ed28f61a98 --- /dev/null +++ b/backends/gp32/graphics.h @@ -0,0 +1,112 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001 Ludvig Strigeus + * Copyright (C) 2001/2004 The ScummVM project + * Copyright (C) 2002 Ph0x - GP32 Backend + * Copyright (C) 2003/2004 DJWillis - GP32 Backend + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program 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 General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +////////////////////////////////////////////////////////////////////////////// +// +// GP32 Graphics structure header +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef GRAPHICS_H +#define GRAPHICS_H + +#define Sint16 s16 +#define Uint16 u16 +#define Uint32 u32 +#define Uint8 u8 + +typedef struct { + Sint16 x, y; + Uint16 w, h; +} gpRect; + +typedef struct { + Uint8 r; + Uint8 g; + Uint8 b; + Uint8 unused; +} gpColor; + +typedef struct { + int ncolors; + gpColor *colors; +} gpPalette; + +/* Everything in the pixel format structure is read-only */ +typedef struct gpPixelFormat { + gpPalette *palette; + Uint8 BitsPerPixel; + Uint8 BytesPerPixel; + Uint8 Rloss; + Uint8 Gloss; + Uint8 Bloss; + Uint8 Aloss; + Uint8 Rshift; + Uint8 Gshift; + Uint8 Bshift; + Uint8 Ashift; + Uint32 Rmask; + Uint32 Gmask; + Uint32 Bmask; + Uint32 Amask; + + /* RGB color key information */ + Uint32 colorkey; + /* Alpha value information (per-surface alpha) */ + Uint8 alpha; +} gpPixelFormat; + +typedef struct gpSurface { + Uint32 flags; /* Read-only */ + gpPixelFormat *format; /* Read-only */ + int w, h; /* Read-only */ + Uint16 pitch; /* Read-only */ + void *pixels; /* Read-write */ + int offset; /* Private */ + + /* Hardware-specific surface info */ + struct private_hwdata *hwdata; + + /* clipping information */ + gpRect clip_rect; /* Read-only */ + Uint32 unused1; /* for binary compatibility */ + + /* Allow recursive locks */ + Uint32 locked; /* Private */ + + /* info for fast blit mapping to other surfaces */ + // struct gpBlitMap *map; /* Private */ + + /* format version, bumped at every change to invalidate blit maps */ + unsigned int format_version; /* Private */ + + /* Reference count -- used when freeing surface */ + int refcount; /* Read-mostly */ +} gpSurface; + +#define gpSWSurface 0x00000000 +#define gpHWSurface 0x00000001 +#define gpFullScreen 0x80000000 + +#endif /* GRAPHICS_H */ |