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

« back to all changes in this revision

Viewing changes to src/gallium/state_trackers/d3d1x/d3dapi/dxgi.idl

  • 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
 * Copyright 2007 Andras Kovacs
 
3
 *
 
4
 * This library is free software; you can redistribute it and/or
 
5
 * modify it under the terms of the GNU Lesser General Public
 
6
 * License as published by the Free Software Foundation; either
 
7
 * version 2.1 of the License, or (at your option) any later version.
 
8
 *
 
9
 * This library is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 
12
 * Lesser General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU Lesser General Public
 
15
 * License along with this library; if not, write to the Free Software
 
16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 
17
 */
 
18
 
 
19
/*DXGI 1.1 IDL, and missing DXGI 1.0 parts added by Luca Barbieri on Sep 2010 */
 
20
 
 
21
import "dxgitype.idl";
 
22
 
 
23
const UINT _FACDXGI = 0x87a;
 
24
 
 
25
cpp_quote("#define MAKE_DXGI_STATUS(x)                   MAKE_HRESULT(0, _FACDXGI, x)")
 
26
cpp_quote("#define DXGI_STATUS_OCCLUDED                 MAKE_DXGI_STATUS(1)")
 
27
cpp_quote("#define DXGI_STATUS_CLIPPED                   MAKE_DXGI_STATUS(2)")
 
28
cpp_quote("#define DXGI_STATUS_NO_REDIRECTION            MAKE_DXGI_STATUS(4)")
 
29
cpp_quote("#define DXGI_STATUS_NO_DESKTOP_ACCESS                 MAKE_DXGI_STATUS(5)")
 
30
cpp_quote("#define DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE     MAKE_DXGI_STATUS(6)")
 
31
cpp_quote("#define DXGI_STATUS_MODE_CHANGED                     MAKE_DXGI_STATUS(7)")
 
32
cpp_quote("#define DXGI_STATUS_MODE_CHANGE_IN_PROGRESS   MAKE_DXGI_STATUS(8)")
 
33
 
 
34
cpp_quote("#define MAKE_DXGI_HRESULT(x)                 MAKE_HRESULT(1, _FACDXGI, x)")
 
35
cpp_quote("#define DXGI_ERROR_INVALID_CALL                       MAKE_DXGI_HRESULT(1)")
 
36
cpp_quote("#define DXGI_ERROR_NOT_FOUND                 MAKE_DXGI_HRESULT(2)")
 
37
cpp_quote("#define DXGI_ERROR_MORE_DATA                 MAKE_DXGI_HRESULT(3)")
 
38
cpp_quote("#define DXGI_ERROR_UNSUPPORTED                        MAKE_DXGI_HRESULT(4)")
 
39
cpp_quote("#define DXGI_ERROR_DEVICE_REMOVED             MAKE_DXGI_HRESULT(5)")
 
40
cpp_quote("#define DXGI_ERROR_DEVICE_HUNG                        MAKE_DXGI_HRESULT(6)")
 
41
cpp_quote("#define DXGI_ERROR_DEVICE_RESET                       MAKE_DXGI_HRESULT(7)")
 
42
cpp_quote("#define DXGI_ERROR_WAS_STILL_DRAWING         MAKE_DXGI_HRESULT(10)")
 
43
cpp_quote("#define DXGI_ERROR_FRAME_STATISTICS_DISJOINT MAKE_DXGI_HRESULT(11)")
 
44
cpp_quote("#define DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE       MAKE_DXGI_HRESULT(12)")
 
45
cpp_quote("#define DXGI_ERROR_DRIVER_INTERNAL_ERROR             MAKE_DXGI_HRESULT(32)")
 
46
cpp_quote("#define DXGI_ERROR_NONEXCLUSIVE                       MAKE_DXGI_HRESULT(33)")
 
47
cpp_quote("#define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE    MAKE_DXGI_HRESULT(34)")
 
48
 
 
49
cpp_quote("#if 0")
 
50
typedef HANDLE HMONITOR;
 
51
typedef struct _LUID {
 
52
        DWORD LowPart;
 
53
        LONG HighPart;
 
54
} LUID, *PLUID;
 
55
cpp_quote("#endif")
 
56
 
 
57
typedef UINT DXGI_USAGE;
 
58
const DXGI_USAGE DXGI_USAGE_SHADER_INPUT                = 0x10L;
 
59
const DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT        = 0x20L;
 
60
const DXGI_USAGE DXGI_USAGE_BACK_BUFFER          = 0x40L;
 
61
const DXGI_USAGE DXGI_USAGE_SHARED               = 0x80L;
 
62
const DXGI_USAGE DXGI_USAGE_READ_ONLY            = 0x100L;
 
63
 
 
64
typedef enum DXGI_SWAP_EFFECT {
 
65
        DXGI_SWAP_EFFECT_DISCARD        = 0,
 
66
        DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
 
67
} DXGI_SWAP_EFFECT;
 
68
 
 
69
typedef enum DXGI_RESIDENCY {
 
70
        DXGI_RESIDENCY_FULLY_RESIDENT            = 1,
 
71
        DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY        = 2,
 
72
        DXGI_RESIDENCY_EVICTED_TO_DISK           = 3,
 
73
} DXGI_RESIDENCY;
 
74
 
 
75
typedef struct DXGI_SURFACE_DESC {
 
76
        UINT Width;
 
77
        UINT Height;
 
78
        DXGI_FORMAT Format;
 
79
        DXGI_SAMPLE_DESC SampleDesc;
 
80
} DXGI_SURFACE_DESC;
 
81
 
 
82
typedef struct DXGI_MAPPED_RECT {
 
83
        INT Pitch;
 
84
        BYTE *pBits;
 
85
} DXGI_MAPPED_RECT;
 
86
 
 
87
typedef struct DXGI_OUTPUT_DESC {
 
88
        WCHAR DeviceName[32];
 
89
        RECT DesktopCoordinates;
 
90
        BOOL AttachedToDesktop;
 
91
        DXGI_MODE_ROTATION Rotation;
 
92
        HMONITOR Monitor;
 
93
} DXGI_OUTPUT_DESC;
 
94
 
 
95
typedef struct DXGI_FRAME_STATISTICS {
 
96
        UINT PresentCount;
 
97
        UINT PresentRefreshCount;
 
98
        UINT SyncRefreshCount;
 
99
        LARGE_INTEGER SyncQPCTime;
 
100
        LARGE_INTEGER SyncGPUTime;
 
101
} DXGI_FRAME_STATISTICS;
 
102
 
 
103
typedef struct DXGI_ADAPTER_DESC {
 
104
        WCHAR Description[128];
 
105
        UINT VendorId;
 
106
        UINT DeviceId;
 
107
        UINT SubSysId;
 
108
        UINT Revision;
 
109
        SIZE_T DedicatedVideoMemory;
 
110
        SIZE_T DedicatedSystemMemory;
 
111
        SIZE_T SharedSystemMemory;
 
112
        LUID AdapterLuid;
 
113
} DXGI_ADAPTER_DESC;
 
114
 
 
115
typedef struct DXGI_SWAP_CHAIN_DESC {
 
116
        DXGI_MODE_DESC BufferDesc;
 
117
        DXGI_SAMPLE_DESC SampleDesc;
 
118
        DXGI_USAGE BufferUsage;
 
119
        UINT BufferCount;
 
120
        HWND OutputWindow;
 
121
        BOOL Windowed;
 
122
        DXGI_SWAP_EFFECT SwapEffect;
 
123
        UINT Flags;
 
124
} DXGI_SWAP_CHAIN_DESC;
 
125
 
 
126
typedef struct DXGI_SHARED_RESOURCE {
 
127
        HANDLE Handle;
 
128
} DXGI_SHARED_RESOURCE;
 
129
 
 
130
[
 
131
        object,
 
132
        local,
 
133
        uuid(aec22fb8-76f3-4639-9be0-28eb43a67a2e)
 
134
]
 
135
interface IDXGIObject : IUnknown
 
136
{
 
137
        HRESULT SetPrivateData(
 
138
        [in] REFGUID a,
 
139
        [in] UINT b,
 
140
        [in] const void *c
 
141
        );
 
142
        HRESULT SetPrivateDataInterface(
 
143
        [in] REFGUID a,
 
144
        [in] const IUnknown *b
 
145
        );
 
146
        HRESULT GetPrivateData(
 
147
        [in] REFGUID a,
 
148
        [in, out] UINT *b,
 
149
        [out] void *c
 
150
        );
 
151
        HRESULT GetParent(
 
152
        [in] REFIID a,
 
153
        [out] void **b
 
154
        );
 
155
}
 
156
 
 
157
[
 
158
        object,
 
159
        local,
 
160
        uuid(3d3e0379-f9de-4d58-bb6c-18d62992f1a6)
 
161
]
 
162
interface IDXGIDeviceSubObject : IDXGIObject
 
163
{
 
164
        HRESULT GetDevice(
 
165
        [in] REFIID a,
 
166
        [out] void **b
 
167
        );
 
168
}
 
169
 
 
170
[
 
171
        object,
 
172
        local,
 
173
        uuid(cafcb56c-6ac3-4889-bf47-9e23bbd260ec)
 
174
]
 
175
interface IDXGISurface : IDXGIDeviceSubObject
 
176
{
 
177
        HRESULT GetDesc(
 
178
        [out] DXGI_SURFACE_DESC *a
 
179
        );
 
180
        HRESULT Map(
 
181
        [out] DXGI_MAPPED_RECT *a,
 
182
        [in] UINT b
 
183
        );
 
184
        HRESULT Unmap(
 
185
        );
 
186
}
 
187
 
 
188
[
 
189
        object,
 
190
        local,
 
191
        uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa)
 
192
]
 
193
interface IDXGIOutput : IDXGIObject
 
194
{
 
195
        HRESULT GetDesc(
 
196
        [out] DXGI_OUTPUT_DESC *a
 
197
        );
 
198
        HRESULT GetDisplayModeList(
 
199
        [in] DXGI_FORMAT a,
 
200
        [in] UINT b,
 
201
        [in, out] UINT *c,
 
202
        [out] DXGI_MODE_DESC *d
 
203
        );
 
204
        HRESULT FindClosestMatchingMode(
 
205
        [in] const DXGI_MODE_DESC *a,
 
206
        [out] DXGI_MODE_DESC *b,
 
207
        [in] IUnknown *c
 
208
        );
 
209
        HRESULT WaitForVBlank(
 
210
        );
 
211
        HRESULT TakeOwnership(
 
212
        [in] IUnknown *a,
 
213
        [in] BOOL b
 
214
        );
 
215
        void ReleaseOwnership(
 
216
        );
 
217
        HRESULT GetGammaControlCapabilities(
 
218
        [out] DXGI_GAMMA_CONTROL_CAPABILITIES *a
 
219
        );
 
220
        HRESULT SetGammaControl(
 
221
        [in] const DXGI_GAMMA_CONTROL *a
 
222
        );
 
223
        HRESULT GetGammaControl(
 
224
        [out] DXGI_GAMMA_CONTROL *a
 
225
        );
 
226
        HRESULT SetDisplaySurface(
 
227
        [in] IDXGISurface *a
 
228
        );
 
229
        HRESULT GetDisplaySurfaceData(
 
230
        [in] IDXGISurface *a
 
231
        );
 
232
        HRESULT GetFrameStatistics(
 
233
        [out] DXGI_FRAME_STATISTICS *a
 
234
        );
 
235
}
 
236
 
 
237
[
 
238
        object,
 
239
        local,
 
240
        uuid(2411e7e1-12ac-4ccf-bd14-9798e8534dc0)
 
241
]
 
242
interface IDXGIAdapter : IDXGIObject
 
243
{
 
244
        HRESULT EnumOutputs(
 
245
        [in] UINT a,
 
246
        [in, out] IDXGIOutput **b
 
247
        );
 
248
        HRESULT GetDesc(
 
249
        [out] DXGI_ADAPTER_DESC *a
 
250
        );
 
251
        HRESULT CheckInterfaceSupport(
 
252
        [in] REFGUID a,
 
253
        [out] LARGE_INTEGER *b
 
254
        );
 
255
}
 
256
 
 
257
[
 
258
        object,
 
259
        local,
 
260
        uuid(310d36a0-d2e7-4c0a-aa04-6a9d23b8886a)
 
261
]
 
262
interface IDXGISwapChain : IDXGIDeviceSubObject
 
263
{
 
264
        HRESULT Present(
 
265
        [in] UINT a,
 
266
        [in] UINT b
 
267
        );
 
268
        HRESULT GetBuffer(
 
269
        [in] UINT a,
 
270
        [in] REFIID b,
 
271
        [in, out] void **c
 
272
        );
 
273
        HRESULT SetFullscreenState(
 
274
        [in] BOOL a,
 
275
        [in] IDXGIOutput *b
 
276
        );
 
277
        HRESULT GetFullscreenState(
 
278
        [out] BOOL *a,
 
279
        [out] IDXGIOutput **b
 
280
        );
 
281
        HRESULT GetDesc(
 
282
        [out] DXGI_SWAP_CHAIN_DESC *a
 
283
        );
 
284
        HRESULT ResizeBuffers(
 
285
        [in] UINT a,
 
286
        [in] UINT b,
 
287
        [in] UINT c,
 
288
        [in] DXGI_FORMAT d,
 
289
        [in] UINT e
 
290
        );
 
291
        HRESULT ResizeTarget(
 
292
        [in] const DXGI_MODE_DESC *a
 
293
        );
 
294
        HRESULT GetContainingOutput(
 
295
        [out] IDXGIOutput **a
 
296
        );
 
297
        HRESULT GetFrameStatistics(
 
298
        [out] DXGI_FRAME_STATISTICS *a
 
299
        );
 
300
        HRESULT GetLastPresentCount(
 
301
        [out] UINT *a
 
302
        );
 
303
}
 
304
 
 
305
[
 
306
        object,
 
307
        local,
 
308
        uuid(7b7166ec-21c7-44ae-b21a-c9ae321ae369)
 
309
]
 
310
interface IDXGIFactory : IDXGIObject
 
311
{
 
312
        HRESULT EnumAdapters(
 
313
        [in] UINT a,
 
314
        [out] IDXGIAdapter **b
 
315
        );
 
316
        HRESULT MakeWindowAssociation(
 
317
        [in] HWND a,
 
318
        [in] UINT b
 
319
        );
 
320
        HRESULT GetWindowAssociation(
 
321
        [in] HWND *a
 
322
        );
 
323
        HRESULT CreateSwapChain(
 
324
        [in] IUnknown *a,
 
325
        [in] DXGI_SWAP_CHAIN_DESC *b,
 
326
        [out] IDXGISwapChain **c
 
327
        );
 
328
        HRESULT CreateSoftwareAdapter(
 
329
        [in] HMODULE a,
 
330
        [out] IDXGIAdapter **b
 
331
        );
 
332
}
 
333
 
 
334
[local] HRESULT CreateDXGIFactory(REFIID riid, void **factory);
 
335
 
 
336
[
 
337
        object,
 
338
        local,
 
339
        uuid(54ec77fa-1377-44e6-8c32-88fd5f44c84c)
 
340
]
 
341
interface IDXGIDevice : IDXGIObject
 
342
{
 
343
        HRESULT GetAdapter(
 
344
        [out] IDXGIAdapter **a
 
345
        );
 
346
        HRESULT CreateSurface(
 
347
        [in] const DXGI_SURFACE_DESC *a,
 
348
        [in] UINT b,
 
349
        [in] DXGI_USAGE c,
 
350
        [in] const DXGI_SHARED_RESOURCE *d,
 
351
        [out] IDXGISurface **e
 
352
        );
 
353
        HRESULT QueryResourceResidency(
 
354
        [in] IUnknown *const *a,
 
355
        [out] DXGI_RESIDENCY *b,
 
356
        [in] UINT c
 
357
        );
 
358
        HRESULT SetGPUThreadPriority(
 
359
        [in] INT a
 
360
        );
 
361
        HRESULT GetGPUThreadPriority(
 
362
        [out] INT *a
 
363
        );
 
364
}
 
365
 
 
366
 
 
367
// BEGIN parts added for Gallium
 
368
 
 
369
const unsigned int DXGI_MAP_READ = 1;
 
370
const unsigned int DXGI_MAP_WRITE = 2;
 
371
const unsigned int DXGI_MAP_DISCARD = 4;
 
372
 
 
373
const unsigned int DXGI_CPU_ACCESS_NONE = 0;
 
374
const unsigned int DXGI_CPU_ACCESS_DYNAMIC = 1;
 
375
const unsigned int DXGI_CPU_ACCESS_READ_WRITE = 2;
 
376
const unsigned int DXGI_CPU_ACCESS_SCRATCH = 3;
 
377
const unsigned int DXGI_CPU_ACCESS_FIELD = 15;
 
378
const unsigned int DXGI_USAGE_DISCARD_ON_PRESENT = 0x200;
 
379
const unsigned int DXGI_USAGE_UNORDERED_ACCESS = 0x400;
 
380
 
 
381
const unsigned int DXGI_PRESENT_TEST = 1;
 
382
const unsigned int DXGI_PRESENT_DO_NOT_SEQUENCE = 2;
 
383
const unsigned int DXGI_PRESENT_RESTART = 4;
 
384
 
 
385
typedef enum DXGI_SWAP_CHAIN_FLAG
 
386
{
 
387
        DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
 
388
        DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
 
389
        DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4
 
390
} DXGI_SWAP_CHAIN_FLAG;
 
391
 
 
392
typedef struct DXGI_ADAPTER_DESC1
 
393
{
 
394
        WCHAR Description[128];
 
395
        UINT VendorId;
 
396
        UINT DeviceId;
 
397
        UINT SubSysId;
 
398
        UINT Revision;
 
399
        SIZE_T DedicatedVideoMemory;
 
400
        SIZE_T DedicatedSystemMemory;
 
401
        SIZE_T SharedSystemMemory;
 
402
        LUID AdapterLuid;
 
403
        UINT Flags;
 
404
} DXGI_ADAPTER_DESC1;
 
405
 
 
406
[object, local, uuid("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")]
 
407
interface IDXGIResource : IDXGIDeviceSubObject
 
408
{
 
409
        HRESULT GetSharedHandle(
 
410
                [out] HANDLE *a
 
411
        );
 
412
 
 
413
        HRESULT GetUsage(
 
414
                [out] DXGI_USAGE *a
 
415
        );
 
416
 
 
417
        HRESULT SetEvictionPriority(
 
418
                [in] UINT a
 
419
        );
 
420
 
 
421
        HRESULT GetEvictionPriority(
 
422
                [out] UINT *a
 
423
        );
 
424
};
 
425
 
 
426
[object, local, uuid("4AE63092-6327-4c1b-80AE-BFE12EA32B86")]
 
427
interface IDXGISurface1 : IDXGISurface
 
428
{
 
429
        HRESULT GetDC( 
 
430
                [in] BOOL a,
 
431
                [out] HDC *b
 
432
        );
 
433
 
 
434
        HRESULT ReleaseDC(
 
435
                [in, optional] RECT *a
 
436
        );
 
437
 };
 
438
 
 
439
[object, local, uuid("77db970f-6276-48ba-ba28-070143b4392c")]
 
440
interface IDXGIDevice1 : IDXGIDevice
 
441
{
 
442
        HRESULT SetMaximumFrameLatency( 
 
443
                [in] UINT a
 
444
        );
 
445
 
 
446
        HRESULT GetMaximumFrameLatency( 
 
447
                [out] UINT *a
 
448
        );
 
449
};
 
450
 
 
451
[object, local, uuid("29038f61-3839-4626-91fd-086879011a05")]
 
452
interface IDXGIAdapter1 : IDXGIAdapter
 
453
{
 
454
        HRESULT GetDesc1( 
 
455
                [out] DXGI_ADAPTER_DESC1 *a
 
456
        );
 
457
};
 
458
 
 
459
[object, local, uuid("770aae78-f26f-4dba-a829-253c83d1b387")]
 
460
interface IDXGIFactory1 : IDXGIFactory
 
461
{
 
462
        HRESULT EnumAdapters1(
 
463
                [in] UINT a,
 
464
                [out] IDXGIAdapter1 **b
 
465
        );
 
466
 
 
467
        BOOL IsCurrent();
 
468
};
 
469
 
 
470
[local] HRESULT CreateDXGIFactory1(REFIID riid, void **factory);