Merge commit 'origin/master' into gallium-0.2
[mesa.git] / src / gallium / state_trackers / python / p_format.i
1 /**************************************************************************
2 *
3 * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28 /*
29 * XXX: SWIG can't parse p_format.h, so we need to duplicate the relevant
30 * declarations here
31 */
32
33 %{
34 #include "pipe/p_format.h"
35 %}
36
37 enum pipe_format {
38 PIPE_FORMAT_NONE,
39 PIPE_FORMAT_A8R8G8B8_UNORM,
40 PIPE_FORMAT_X8R8G8B8_UNORM,
41 PIPE_FORMAT_B8G8R8A8_UNORM,
42 PIPE_FORMAT_B8G8R8X8_UNORM,
43 PIPE_FORMAT_A1R5G5B5_UNORM,
44 PIPE_FORMAT_A4R4G4B4_UNORM,
45 PIPE_FORMAT_R5G6B5_UNORM,
46 PIPE_FORMAT_A2B10G10R10_UNORM,
47 PIPE_FORMAT_L8_UNORM,
48 PIPE_FORMAT_A8_UNORM,
49 PIPE_FORMAT_I8_UNORM,
50 PIPE_FORMAT_A8L8_UNORM,
51 PIPE_FORMAT_L16_UNORM,
52 PIPE_FORMAT_YCBCR,
53 PIPE_FORMAT_YCBCR_REV,
54 PIPE_FORMAT_Z16_UNORM,
55 PIPE_FORMAT_Z32_UNORM,
56 PIPE_FORMAT_Z32_FLOAT,
57 PIPE_FORMAT_S8Z24_UNORM,
58 PIPE_FORMAT_Z24S8_UNORM,
59 PIPE_FORMAT_X8Z24_UNORM,
60 PIPE_FORMAT_Z24X8_UNORM,
61 PIPE_FORMAT_S8_UNORM,
62 PIPE_FORMAT_R64_FLOAT,
63 PIPE_FORMAT_R64G64_FLOAT,
64 PIPE_FORMAT_R64G64B64_FLOAT,
65 PIPE_FORMAT_R64G64B64A64_FLOAT,
66 PIPE_FORMAT_R32_FLOAT,
67 PIPE_FORMAT_R32G32_FLOAT,
68 PIPE_FORMAT_R32G32B32_FLOAT,
69 PIPE_FORMAT_R32G32B32A32_FLOAT,
70 PIPE_FORMAT_R32_UNORM,
71 PIPE_FORMAT_R32G32_UNORM,
72 PIPE_FORMAT_R32G32B32_UNORM,
73 PIPE_FORMAT_R32G32B32A32_UNORM,
74 PIPE_FORMAT_R32_USCALED,
75 PIPE_FORMAT_R32G32_USCALED,
76 PIPE_FORMAT_R32G32B32_USCALED,
77 PIPE_FORMAT_R32G32B32A32_USCALED,
78 PIPE_FORMAT_R32_SNORM,
79 PIPE_FORMAT_R32G32_SNORM,
80 PIPE_FORMAT_R32G32B32_SNORM,
81 PIPE_FORMAT_R32G32B32A32_SNORM,
82 PIPE_FORMAT_R32_SSCALED,
83 PIPE_FORMAT_R32G32_SSCALED,
84 PIPE_FORMAT_R32G32B32_SSCALED,
85 PIPE_FORMAT_R32G32B32A32_SSCALED,
86 PIPE_FORMAT_R16_UNORM,
87 PIPE_FORMAT_R16G16_UNORM,
88 PIPE_FORMAT_R16G16B16_UNORM,
89 PIPE_FORMAT_R16G16B16A16_UNORM,
90 PIPE_FORMAT_R16_USCALED,
91 PIPE_FORMAT_R16G16_USCALED,
92 PIPE_FORMAT_R16G16B16_USCALED,
93 PIPE_FORMAT_R16G16B16A16_USCALED,
94 PIPE_FORMAT_R16_SNORM,
95 PIPE_FORMAT_R16G16_SNORM,
96 PIPE_FORMAT_R16G16B16_SNORM,
97 PIPE_FORMAT_R16G16B16A16_SNORM,
98 PIPE_FORMAT_R16_SSCALED,
99 PIPE_FORMAT_R16G16_SSCALED,
100 PIPE_FORMAT_R16G16B16_SSCALED,
101 PIPE_FORMAT_R16G16B16A16_SSCALED,
102 PIPE_FORMAT_R8_UNORM,
103 PIPE_FORMAT_R8G8_UNORM,
104 PIPE_FORMAT_R8G8B8_UNORM,
105 PIPE_FORMAT_R8G8B8A8_UNORM,
106 PIPE_FORMAT_R8G8B8X8_UNORM,
107 PIPE_FORMAT_R8_USCALED,
108 PIPE_FORMAT_R8G8_USCALED,
109 PIPE_FORMAT_R8G8B8_USCALED,
110 PIPE_FORMAT_R8G8B8A8_USCALED,
111 PIPE_FORMAT_R8G8B8X8_USCALED,
112 PIPE_FORMAT_R8_SNORM,
113 PIPE_FORMAT_R8G8_SNORM,
114 PIPE_FORMAT_R8G8B8_SNORM,
115 PIPE_FORMAT_R8G8B8A8_SNORM,
116 PIPE_FORMAT_R8G8B8X8_SNORM,
117 PIPE_FORMAT_B6G5R5_SNORM,
118 PIPE_FORMAT_A8B8G8R8_SNORM,
119 PIPE_FORMAT_X8B8G8R8_SNORM,
120 PIPE_FORMAT_R8_SSCALED,
121 PIPE_FORMAT_R8G8_SSCALED,
122 PIPE_FORMAT_R8G8B8_SSCALED,
123 PIPE_FORMAT_R8G8B8A8_SSCALED,
124 PIPE_FORMAT_R8G8B8X8_SSCALED,
125 PIPE_FORMAT_R32_FIXED,
126 PIPE_FORMAT_R32G32_FIXED,
127 PIPE_FORMAT_R32G32B32_FIXED,
128 PIPE_FORMAT_R32G32B32A32_FIXED,
129
130 PIPE_FORMAT_L8_SRGB,
131 PIPE_FORMAT_A8_L8_SRGB,
132 PIPE_FORMAT_R8G8B8_SRGB,
133 PIPE_FORMAT_R8G8B8A8_SRGB,
134 PIPE_FORMAT_R8G8B8X8_SRGB,
135
136 PIPE_FORMAT_X8UB8UG8SR8S_NORM,
137 PIPE_FORMAT_B6UG5SR5S_NORM,
138
139 PIPE_FORMAT_DXT1_RGB,
140 PIPE_FORMAT_DXT1_RGBA,
141 PIPE_FORMAT_DXT3_RGBA,
142 PIPE_FORMAT_DXT5_RGBA,
143 };
144
145
146 struct pipe_format_block
147 {
148 unsigned size;
149 unsigned width;
150 unsigned height;
151 };
152