dxgitype.idl revision 92617aeac109481258f0c3863d09c1b8903d438b
1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright 2007 Andras Kovacs
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This library is free software; you can redistribute it and/or
5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch * modify it under the terms of the GNU Lesser General Public
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License as published by the Free Software Foundation; either
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * version 2.1 of the License, or (at your option) any later version.
8e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch *
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This library is distributed in the hope that it will be useful,
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Lesser General Public License for more details.
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch *
14e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch * You should have received a copy of the GNU Lesser General Public
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * License along with this library; if not, write to the Free Software
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)/* DXGI 1.1 IDL, and missing DXGI 1.0 parts added by Luca Barbieri on Sep 2010 */
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import "oaidl.idl";
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import "ocidl.idl";
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)import "dxgiformat.idl";
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)typedef struct DXGI_SAMPLE_DESC {
27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    UINT Count;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    UINT Quality;
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} DXGI_SAMPLE_DESC;
306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)typedef enum DXGI_MODE_ROTATION {
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    DXGI_MODE_ROTATION_UNSPECIFIED  = 0,
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    DXGI_MODE_ROTATION_IDENTITY     = 1,
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    DXGI_MODE_ROTATION_ROTATE90     = 2,
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    DXGI_MODE_ROTATION_ROTATE180    = 3,
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    DXGI_MODE_ROTATION_ROTATE270    = 4,
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} DXGI_MODE_ROTATION;
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)typedef enum DXGI_MODE_SCANLINE_ORDER {
40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED        = 0,
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE        = 1,
42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST  = 2,
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST  = 3,
44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} DXGI_MODE_SCANLINE_ORDER;
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum DXGI_MODE_SCALING {
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    DXGI_MODE_SCALING_UNSPECIFIED   = 0,
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DXGI_MODE_SCALING_CENTERED      = 1,
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DXGI_MODE_SCALING_STRETCHED     = 2,
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} DXGI_MODE_SCALING;
5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
52c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochtypedef struct DXGI_RATIONAL {
5390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    UINT Numerator;
54c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    UINT Denominator;
5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} DXGI_RATIONAL;
56c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)typedef struct DXGI_MODE_DESC {
58c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    UINT Width;
5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    UINT Height;
60c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    DXGI_RATIONAL RefreshRate;
6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    DXGI_FORMAT Format;
62c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    DXGI_MODE_SCALING Scaling;
6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} DXGI_MODE_DESC;
6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES {
6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    BOOL ScaleAndOffsetSupported;
6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    float MaxConvertedValue;
69c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    float MinConvertedValue;
70c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    UINT NumGammaControlPoints;
71c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    float ControlPointPositions[1025];
72c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} DXGI_GAMMA_CONTROL_CAPABILITIES;
73c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
74c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochtypedef struct DXGI_RGB {
75c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    float Red;
76c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    float Green;
77c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    float Blue;
78c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} DXGI_RGB;
79c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
80c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochtypedef struct DXGI_GAMMA_CONTROL {
81c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    DXGI_RGB Scale;
82c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    DXGI_RGB Offset;
83a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    DXGI_RGB GammaCurve[1025];
84a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} DXGI_GAMMA_CONTROL;
85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)