doxygen: prevent GPL license block from being parsed as doxygen comment.
[blender.git] / source / blender / imbuf / intern / dds / Image.h
1 /*
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  *
20  * Contributors: Amorilia (amorilia@gamebox.net)
21  *
22  * ***** END GPL LICENSE BLOCK *****
23  */
24
25 /*
26  * This file is based on a similar file from the NVIDIA texture tools
27  * (http://nvidia-texture-tools.googlecode.com/)
28  *
29  * Original license from NVIDIA follows.
30  */
31
32 // This code is in the public domain -- castanyo@yahoo.es
33
34 #ifndef _DDS_IMAGE_H
35 #define _DDS_IMAGE_H
36
37 #include <Common.h>
38 #include <Color.h>
39
40 /// 32 bit RGBA image.
41 class Image
42 {
43 public:
44         
45         enum Format 
46         {
47                 Format_RGB,
48                 Format_ARGB,
49         };
50         
51         Image();
52         ~Image();
53         
54         void allocate(uint w, uint h);
55         /*
56         bool load(const char * name);
57         
58         void wrap(void * data, uint w, uint h);
59         void unwrap();
60         */
61         
62         uint width() const;
63         uint height() const;
64         
65         const Color32 * scanline(uint h) const;
66         Color32 * scanline(uint h);
67         
68         const Color32 * pixels() const;
69         Color32 * pixels();
70         
71         const Color32 & pixel(uint idx) const;
72         Color32 & pixel(uint idx);
73         
74         const Color32 & pixel(uint x, uint y) const;
75         Color32 & pixel(uint x, uint y);
76         
77         Format format() const;
78         void setFormat(Format f);
79         
80 private:
81         void free();
82         
83 private:
84         uint m_width;
85         uint m_height;
86         Format m_format;
87         Color32 * m_data;
88 };
89
90
91 inline const Color32 & Image::pixel(uint x, uint y) const
92 {
93         return pixel(y * width() + x);
94 }
95
96 inline Color32 & Image::pixel(uint x, uint y)
97 {
98         return pixel(y * width() + x);
99 }
100
101 #endif // _DDS_IMAGE_H