src/bmp.h
changeset 5475 2e6990a8c7c4
parent 4300 c7e43c47a2b9
child 6123 04eb770ec17e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/bmp.h	Tue Jan 02 19:19:48 2007 +0000
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+#ifndef BMP_H
+#define BMP_H
+
+typedef struct {
+	uint32 offset;       ///< offset of bitmap data from .bmp file begining
+	uint32 width;        ///< bitmap width
+	uint32 height;       ///< bitmap height
+	bool os2_bmp;        ///< true if OS/2 1.x or windows 2.x bitmap
+	uint16 bpp;          ///< bits per pixel
+	uint32 compression;  ///< compression method (0 = none, 1 = 8-bit RLE, 2 = 4-bit RLE)
+	uint32 palette_size; ///< number of colors in palette
+} BmpInfo;
+
+typedef struct {
+	Colour *palette;
+	byte   *bitmap;
+} BmpData;
+
+#define BMP_BUFFER_SIZE 1024
+
+typedef struct {
+	byte data[BMP_BUFFER_SIZE];
+	int pos;
+	int read;
+	FILE *file;
+	uint real_pos;
+} BmpBuffer;
+
+void BmpInitializeBuffer(BmpBuffer *buffer, FILE *file);
+bool BmpReadHeader(BmpBuffer *buffer, BmpInfo *info, BmpData *data);
+bool BmpReadBitmap(BmpBuffer *buffer, BmpInfo *info, BmpData *data);
+void BmpDestroyData(BmpData *data);
+
+#endif /* BMP_H */