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