From 952c5c128f9efaea89d41d882c4ea3ade7df4591 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 04:48:05 +0000 Subject: Itsa me, quake3io! git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea --- q3radiant/BMP.H | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 q3radiant/BMP.H (limited to 'q3radiant/BMP.H') diff --git a/q3radiant/BMP.H b/q3radiant/BMP.H new file mode 100755 index 0000000..367d652 --- /dev/null +++ b/q3radiant/BMP.H @@ -0,0 +1,101 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code 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. + +Quake III Arena source code 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 Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +#ifndef _BMP_H +#define _BMP_H + +#define xBI_NONE 0 +#define xBI_RGB 0 +#define xBI_RLE4 2 +#define xBI_RLE8 1 + +#define BMP_SIGNATURE_WORD 0x4d42 + +#pragma pack(1) + + + +typedef struct { + unsigned short bfType; // signature - 'BM' + unsigned long bfSize; // file size in bytes + unsigned short bfReserved1; // 0 + unsigned short bfReserved2; // 0 + unsigned long bfOffBits; // offset to bitmap +} bmphd_t; + + + +typedef struct { + unsigned long biSize; // size of this struct + long biWidth; // bmap width in pixels + long biHeight; // bmap height in pixels + unsigned short biPlanes; // num planes - always 1 + unsigned short biBitCount; // bits perpixel + unsigned long biCompression; // compression flag + unsigned long biSizeImage; // image size in bytes + long biXPelsPerMeter; // horz resolution + long biYPelsPerMeter; // vert resolution + unsigned long biClrUsed; // 0 -> color table size + unsigned long biClrImportant; // important color count +} binfo_t; + + +typedef struct { + unsigned char blue; + unsigned char green; + unsigned char red; + unsigned char reserved; +} drgb_t; + + +// quake expects its palette to be bgr +// this is totally backwards but what can you do +typedef struct { + unsigned char r; + unsigned char g; + unsigned char b; +} rgb_t; + + +typedef struct { + unsigned char b; + unsigned char g; + unsigned char r; +} bgr_t; + + +typedef struct { + int bpp; // bits per pixel + int width; + int height; + unsigned char *data; + rgb_t *palette; +} bitmap_t; + + +void LoadBMP(char *filename, bitmap_t *bit); +void FreeBMP(bitmap_t *bitmap); +void WriteBMP(char *filename, bitmap_t *bit); +void NewBMP(int width, int height, int bpp, bitmap_t *bit); + + + +#endif -- cgit v1.2.3