Rice Video Plugin for GLES1.1
[mupen64plus-pandora.git] / source / rice_gles / src / liblinux / BMGDLL.h
CommitLineData
d07c171f 1#ifndef _BMG_LIB_
2#define _BMG_LIB_
3/*
4// header file for the BMGLib DLL
5// This DLL encapsulates the libTIFF library, libJPEG library,
6// libPNG library, and the GeoTIFF library.
7//
8// Copyright 2000, 2001 M. Scott Heiman
9// All Rights Reserved
10// libTIFF is Copyright Sam Leffler and SGI
11// libJPEG is Copyright (C) 1991-1998, Thomas G. Lane and is part of the
12// Independent JPEG Group's software.
13// libPNG is Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
14// (libpng versions 0.5, May 1995, through 0.89c, May 1996)
15// Copyright (c) 1996, 1997 Andreas Dilger
16// (libpng versions 0.90, December 1996, through 0.96, May 1997)
17// Copyright (c) 1998, 1999 Glenn Randers-Pehrson
18// (libpng versions 0.97, January 1998, through 1.0.5, October 15, 1999)
19// zLib Copyright (C) 1995-1998 Jean-loup Gailly.
20// GeoTIFF is Copyright (c) 1999, Frank Warmerdam
21// libPROJ (used by GeoTIFF) is Copytight (c) 2000, Frank Warmerdam
22// libUnGif is Copyright (c) 1997, Eric S. Raymond
23//
24// You may use the software for any purpose you see fit. You may modify
25// it, incorporate it in a commercial application, use it for school,
26// even turn it in as homework. You must keep the Copyright in the
27// header and source files. This software is not in the "Public Domain".
28// You may use this software at your own risk. I have made a reasonable
29// effort to verify that this software works in the manner I expect it to;
30// however,...
31//
32// THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" AND
33// WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING
34// WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A
35// PARTICULAR PURPOSE. IN NO EVENT SHALL MICHAEL S. HEIMAN BE LIABLE TO
36// YOU OR ANYONE ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
37// CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING
38// WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE,
39// OR THE CLAIMS OF THIRD PARTIES, WHETHER OR NOT MICHAEL S. HEIMAN HAS
40// BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
41// ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
42// POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
43*/
44
45#include "BMGImage.h"
46#include "tiffrw.h"
47#include "pngrw.h"
48#include "jpegrw.h"
49
50#if defined(__cplusplus)
51extern "C" {
52#endif
53
54/* returns a BITMAPINFO structure with the given height, width,
55 bit count, and compression scheme. This structure DOES NOT contain any
56 palette information (bmiColors = NULL) */
57extern
58BITMAPINFO CreateBMI( unsigned int dwWidth, /* width in pixels */
59 unsigned int dwHeight, /* height in pixels */
60 unsigned short wBitCount, /* 1, 4, 8, 16, 24, & 32 */
61 int compression ); /* biCompression value */
62
63/* returns an array of RGBA or BGRA values for all supported graphics file
64 formats. The RGBA pixel format is supported by all versions of OpenGL.
65 The BGRA format is an extension supported by may OpenGL vendors. */
66extern
67BMGError GetUnpackedArray( const char *filename,
68 unsigned int *width,
69 unsigned int *height,
70 unsigned char **bits,
71 int bgra );
72
73/* Saves an array of RGB, RGBA, BGR, and BGRA values to a file. The RGB and RGBA
74 pixel formats are supported by OpenGL. The BGR and BGRA extensions are
75 supported by many OpenGL vendors */
76extern
77BMGError SaveUnpackedArray( const char *filename,
78 unsigned char bytes_per_pixel,
79 unsigned int width,
80 unsigned int height,
81 unsigned char *bits,
82 int bgra );
83
84/* saves the contents of an HBITMAP to a file. The extension of the file name
85// determines the file type. returns 1 if successfull, 0 otherwise */
86extern
87BMGError SaveBitmapToFile( HBITMAP hBitmap, /* bitmap to be saved */
88 const char *filename, /* name of output file */
89 void *parameters );
90
91/* Creates an HBITMAP to an image file. The extension of the file name
92// determines the file type. returns an HBITMAP if successfull, NULL
93// otherwise */
94extern
95HBITMAP CreateBitmapFromFile( const char *filename,
96 void *parameters,
97 int blend );
98
99/* extracts a BMGImageStruct from any one of the supported image files */
100extern
101BMGError GetDataFromFile( const char *filename,
102 struct BMGImageStruct *img,
103 void *parameters );
104
105/* the following functions will read/write image files using raw data */
106extern
107BMGError ReadRGB( const char *filename,
108 struct BMGImageStruct *img );
109
110extern
111BMGError WriteRGB( const char *filename,
112 struct BMGImageStruct img );
113
114extern
115BMGError ReadTGA( const char *filename,
116 struct BMGImageStruct *img );
117
118extern
119BMGError WriteTGA( const char *filename,
120 struct BMGImageStruct img );
121
122extern
123BMGError ReadBMP( const char *filename,
124 struct BMGImageStruct *img );
125
126extern
127BMGError WriteBMP( const char *filename,
128 struct BMGImageStruct img );
129
130extern
131BMGError ReadCEL( const char *filename,
132 struct BMGImageStruct *img );
133
134extern
135BMGError ReadGIF( const char *filename,
136 struct BMGImageStruct *img );
137
138extern
139BMGError ReadPSD( const char *filename,
140 struct BMGImageStruct *img );
141
142extern
143BMGError ReadIFF( const char *filename,
144 struct BMGImageStruct *img );
145
146extern
147BMGError ReadPCX( const char *filename,
148 struct BMGImageStruct *img );
149
150#if defined(__cplusplus)
151 }
152#endif
153
154#endif
155