~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/state_trackers/d3d1x/d3d1xstutil/src/dxgi_enums.cpp

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
 *
 
3
 * Copyright 2010 Luca Barbieri
 
4
 *
 
5
 * Permission is hereby granted, free of charge, to any person obtaining
 
6
 * a copy of this software and associated documentation files (the
 
7
 * "Software"), to deal in the Software without restriction, including
 
8
 * without limitation the rights to use, copy, modify, merge, publish,
 
9
 * distribute, sublicense, and/or sell copies of the Software, and to
 
10
 * permit persons to whom the Software is furnished to do so, subject to
 
11
 * the following conditions:
 
12
 *
 
13
 * The above copyright notice and this permission notice (including the
 
14
 * next paragraph) shall be included in all copies or substantial
 
15
 * portions of the Software.
 
16
 *
 
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
18
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
19
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
20
 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
 
21
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 
22
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
23
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
24
 *
 
25
 **************************************************************************/
 
26
 
 
27
#include <d3d1xstutil.h>
 
28
 
 
29
/* D3D has to keep binary compatibility, so these tables will always work
 
30
 * However, Gallium -> D3D conversion must use .[PIPE_xxx] = D3D11_xxx syntax */
 
31
 
 
32
pipe_format dxgi_to_pipe_format[DXGI_FORMAT_COUNT] =
 
33
{
 
34
        PIPE_FORMAT_NONE,
 
35
        PIPE_FORMAT_R32G32B32A32_UINT, /* TYPELESS */
 
36
        PIPE_FORMAT_R32G32B32A32_FLOAT,
 
37
        PIPE_FORMAT_R32G32B32A32_UINT,
 
38
        PIPE_FORMAT_R32G32B32A32_SINT,
 
39
        PIPE_FORMAT_R32G32B32_UINT, /* TYPELESS */
 
40
        PIPE_FORMAT_R32G32B32_FLOAT,
 
41
        PIPE_FORMAT_R32G32B32_UINT,
 
42
        PIPE_FORMAT_R32G32B32_SINT,
 
43
        PIPE_FORMAT_R16G16B16A16_UINT, /* TYPELESS */
 
44
        PIPE_FORMAT_R16G16B16A16_FLOAT,
 
45
        PIPE_FORMAT_R16G16B16A16_UNORM,
 
46
        PIPE_FORMAT_R16G16B16A16_UINT,
 
47
        PIPE_FORMAT_R16G16B16A16_SNORM,
 
48
        PIPE_FORMAT_R16G16B16A16_SINT,
 
49
        PIPE_FORMAT_R32G32_UINT, /* TYPELESS */
 
50
        PIPE_FORMAT_R32G32_FLOAT,
 
51
        PIPE_FORMAT_R32G32_UINT,
 
52
        PIPE_FORMAT_R32G32_SINT,
 
53
        PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_R32_G8X24_TYPELESS */
 
54
        PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
 
55
        PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_R32_X8X24_FLOAT */
 
56
        PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, /* PIPE_FORMAT_X32_G8X24_UINT */
 
57
        PIPE_FORMAT_R10G10B10A2_UNORM, /* TYPELESS */
 
58
        PIPE_FORMAT_R10G10B10A2_UNORM,
 
59
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_R10G10B10A2_UINT */
 
60
        PIPE_FORMAT_R11G11B10_FLOAT,
 
61
        PIPE_FORMAT_R8G8B8A8_UINT, /* TYPELESS */
 
62
        PIPE_FORMAT_R8G8B8A8_UNORM,
 
63
        PIPE_FORMAT_R8G8B8A8_SRGB,
 
64
        PIPE_FORMAT_R8G8B8A8_UINT,
 
65
        PIPE_FORMAT_R8G8B8A8_SNORM,
 
66
        PIPE_FORMAT_R8G8B8A8_SINT,
 
67
        PIPE_FORMAT_R16G16_UINT, /* TYPELESS */
 
68
        PIPE_FORMAT_R16G16_FLOAT,
 
69
        PIPE_FORMAT_R16G16_UNORM,
 
70
        PIPE_FORMAT_R16G16_UINT,
 
71
        PIPE_FORMAT_R16G16_SNORM,
 
72
        PIPE_FORMAT_R16G16_SINT,
 
73
        PIPE_FORMAT_R32_UINT, /* TYPELESS */
 
74
        PIPE_FORMAT_Z32_FLOAT,
 
75
        PIPE_FORMAT_R32_FLOAT,
 
76
        PIPE_FORMAT_R32_UINT,
 
77
        PIPE_FORMAT_R32_SINT,
 
78
        PIPE_FORMAT_Z24_UNORM_S8_UINT, /* PIPE_FORMAT_R24G8_TYPELESS */
 
79
        PIPE_FORMAT_Z24_UNORM_S8_UINT,
 
80
        PIPE_FORMAT_Z24X8_UNORM, /* PIPE_FORMAT_R24X8_UNORM */
 
81
        PIPE_FORMAT_Z24_UNORM_S8_UINT, /* PIPE_FORMAT_X24G8_UINT */
 
82
        PIPE_FORMAT_R8G8_UINT, /* TYPELESS */
 
83
        PIPE_FORMAT_R8G8_UNORM,
 
84
        PIPE_FORMAT_R8G8_UINT,
 
85
        PIPE_FORMAT_R8G8_SNORM,
 
86
        PIPE_FORMAT_R8G8_SINT,
 
87
        PIPE_FORMAT_R16_UINT, /* TYPELESS */
 
88
        PIPE_FORMAT_R16_FLOAT,
 
89
        PIPE_FORMAT_Z16_UNORM,
 
90
        PIPE_FORMAT_R16_UNORM,
 
91
        PIPE_FORMAT_R16_UINT,
 
92
        PIPE_FORMAT_R16_SNORM,
 
93
        PIPE_FORMAT_R16_SINT,
 
94
        PIPE_FORMAT_R8_UINT, /* TYPELESS */
 
95
        PIPE_FORMAT_R8_UNORM,
 
96
        PIPE_FORMAT_R8_UINT,
 
97
        PIPE_FORMAT_R8_SNORM,
 
98
        PIPE_FORMAT_R8_SINT,
 
99
        PIPE_FORMAT_A8_UNORM,
 
100
        PIPE_FORMAT_R1_UNORM,
 
101
        PIPE_FORMAT_R9G9B9E5_FLOAT,
 
102
        PIPE_FORMAT_R8G8_B8G8_UNORM,
 
103
        PIPE_FORMAT_G8R8_G8B8_UNORM,
 
104
        PIPE_FORMAT_DXT1_RGBA, /* TYPELESS */
 
105
        PIPE_FORMAT_DXT1_RGBA,
 
106
        PIPE_FORMAT_DXT1_SRGBA,
 
107
        PIPE_FORMAT_DXT3_RGBA, /* TYPELESS */
 
108
        PIPE_FORMAT_DXT3_RGBA,
 
109
        PIPE_FORMAT_DXT3_SRGBA,
 
110
        PIPE_FORMAT_DXT5_RGBA, /* TYPELESS */
 
111
        PIPE_FORMAT_DXT5_RGBA,
 
112
        PIPE_FORMAT_DXT5_SRGBA,
 
113
        PIPE_FORMAT_RGTC1_UNORM, /* TYPELESS */
 
114
        PIPE_FORMAT_RGTC1_UNORM,
 
115
        PIPE_FORMAT_RGTC1_SNORM,
 
116
        PIPE_FORMAT_RGTC2_UNORM, /* TYPELESS */
 
117
        PIPE_FORMAT_RGTC2_UNORM,
 
118
        PIPE_FORMAT_RGTC2_SNORM,
 
119
        PIPE_FORMAT_B5G6R5_UNORM,
 
120
        PIPE_FORMAT_B5G5R5A1_UNORM,
 
121
        PIPE_FORMAT_B8G8R8A8_UNORM,
 
122
        PIPE_FORMAT_B8G8R8X8_UNORM,
 
123
        PIPE_FORMAT_R10SG10SB10SA2U_NORM,
 
124
        PIPE_FORMAT_B8G8R8A8_UNORM, /* TYPELESS */
 
125
        PIPE_FORMAT_B8G8R8A8_SRGB,
 
126
        PIPE_FORMAT_B8G8R8X8_UNORM, /* TYPELESS */
 
127
        PIPE_FORMAT_B8G8R8X8_SRGB,
 
128
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC6H_TYPELESS */
 
129
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC6H_UF16 */
 
130
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC6H_SF16 */
 
131
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC7_TYPELESS */
 
132
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC7_UNORM */
 
133
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_BC7_UNORM_SRGB */
 
134
        PIPE_FORMAT_AYUV,
 
135
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_Y410 */
 
136
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_Y416 */
 
137
        PIPE_FORMAT_NV12,
 
138
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_P010 */
 
139
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_P016 */
 
140
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_420_OPAQUE */
 
141
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_YUV2 */
 
142
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_Y210 */
 
143
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_Y216 */
 
144
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_NV11 */
 
145
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_AI44 (palettized) */
 
146
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_IA44 (palettized) */
 
147
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_P8 (palettized) */
 
148
        PIPE_FORMAT_NONE, /* PIPE_FORMAT_A8P8 (palettized) */
 
149
        PIPE_FORMAT_B4G4R4A4_UNORM,
 
150
};
 
151
 
 
152
DXGI_FORMAT pipe_to_dxgi_format[PIPE_FORMAT_COUNT];
 
153
static int pipe_to_dxgi_format_initialized;
 
154
void init_pipe_to_dxgi_format()
 
155
{
 
156
        if(!pipe_to_dxgi_format_initialized)
 
157
        {
 
158
                for(unsigned i = 0; i < DXGI_FORMAT_COUNT; ++i)
 
159
                        pipe_to_dxgi_format[dxgi_to_pipe_format[i]] = (DXGI_FORMAT)i;
 
160
                pipe_to_dxgi_format[PIPE_FORMAT_NONE] = DXGI_FORMAT_UNKNOWN;
 
161
                pipe_to_dxgi_format[PIPE_FORMAT_Z32_FLOAT_S8X24_UINT] = DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
 
162
                pipe_to_dxgi_format[PIPE_FORMAT_Z24_UNORM_S8_UINT] = DXGI_FORMAT_D24_UNORM_S8_UINT;
 
163
                pipe_to_dxgi_format_initialized = 1;
 
164
        }
 
165
}