source: branches/help/GL/glpng/glpng.h

Last change on this file was 9003, checked in by westram, 12 years ago
  • changed 'PNG_' into 'GLPNG_' (libpng reserves 'PNG_' and 'png_')
    • suggested by John Bowler + Matt Cottrell
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.1 KB
Line 
1/* PNG loader library for OpenGL v1.45 (10/07/00)
2 * by Ben Wyatt ben@wyatt100.freeserve.co.uk
3 * Using LibPNG 1.0.2 and ZLib 1.1.3
4 *
5 * This software is provided 'as-is', without any express or implied warranty.
6 * In no event will the author be held liable for any damages arising from the
7 * use of this software.
8 *
9 * Permission is hereby granted to use, copy, modify, and distribute this
10 * source code, or portions hereof, for any purpose, without fee, subject to
11 * the following restrictions:
12 *
13 * 1. The origin of this source code must not be misrepresented. You must not
14 *    claim that you wrote the original software. If you use this software in
15 *    a product, an acknowledgment in the product documentation would be
16 *    appreciated but is not required.
17 * 2. Altered versions must be plainly marked as such and must not be
18 *    misrepresented as being the original source.
19 * 3. This notice must not be removed or altered from any source distribution.
20 *
21 * ---------------------------------------------------
22 * This version has been modified for usage inside ARB
23 * http://arb-home.de/
24 */
25
26#ifndef _GLPNG_H_
27#define _GLPNG_H_
28
29#include <stdio.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#ifdef _MSC_VER
36#ifdef _DEBUG
37#pragma comment (lib, "glpngd.lib")
38#else
39#pragma comment (lib, "glpng.lib")
40#endif
41#endif
42
43    // XXX This is from Win32's <windef.h>
44#ifndef APIENTRY
45#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
46#define APIENTRY    __stdcall
47#else
48#define APIENTRY
49#endif
50#endif
51
52    // Mipmapping parameters
53#define GLPNG_NOMIPMAPS      0 // No mipmapping
54#define GLPNG_BUILDMIPMAPS  -1 // Calls a clone of gluBuild2DMipmaps()
55#define GLPNG_SIMPLEMIPMAPS -2 // Generates mipmaps without filtering
56
57    // Who needs an "S" anyway?
58#define GLPNG_NOMIPMAP     GLPNG_NOMIPMAPS
59#define GLPNG_BUILDMIPMAP  GLPNG_BUILDMIPMAPS
60#define GLPNG_SIMPLEMIPMAP GLPNG_SIMPLEMIPMAPS
61
62    // Transparency parameters
63#define GLPNG_CALLBACK  -3 // Call the callback function to generate alpha
64#define GLPNG_ALPHA     -2 // Use alpha channel in PNG file, if there is one
65#define GLPNG_SOLID     -1 // No transparency
66#define GLPNG_STENCIL    0 // Sets alpha to 0 for r=g=b=0, 1 otherwise
67#define GLPNG_BLEND1     1 // a = r+g+b
68#define GLPNG_BLEND2     2 // a = (r+g+b)/2
69#define GLPNG_BLEND3     3 // a = (r+g+b)/3
70#define GLPNG_BLEND4     4 // a = r*r+g*g+b*b
71#define GLPNG_BLEND5     5 // a = (r*r+g*g+b*b)/2
72#define GLPNG_BLEND6     6 // a = (r*r+g*g+b*b)/3
73#define GLPNG_BLEND7     7 // a = (r*r+g*g+b*b)/4
74#define GLPNG_BLEND8     8 // a = sqrt(r*r+g*g+b*b)
75
76    typedef struct {
77        unsigned int Width;
78        unsigned int Height;
79        unsigned int Depth;
80        unsigned int Alpha;
81    } pngInfo;
82
83    typedef struct {
84        unsigned int Width;
85        unsigned int Height;
86        unsigned int Depth;
87        unsigned int Alpha;
88
89        unsigned int Components;
90        unsigned char *Data;
91        unsigned char *Palette;
92    } pngRawInfo;
93
94    extern unsigned int APIENTRY pngBind(const char *filename, int mipmap, int trans, pngInfo *info, int wrapst, int minfilter, int magfilter);
95
96#ifdef __cplusplus
97}
98#endif
99
100#endif
Note: See TracBrowser for help on using the repository browser.