/* 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 */