/*
* Copyright 2007 Andras Kovacs
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
import "oaidl.idl";
import "ocidl.idl";
import "dxgitype.h";
cpp_quote("#define MAKE_DXGI_STATUS(x) MAKE_HRESULT(0, _FACDXGI, x)")
cpp_quote("#define DXGI_STATUS_OCCLUDED MAKE_DXGI_STATUS(1)")
cpp_quote("#define DXGI_STATUS_CLIPPED MAKE_DXGI_STATUS(2)")
cpp_quote("#define DXGI_STATUS_NO_REDIRECTION MAKE_DXGI_STATUS(4)")
cpp_quote("#define DXGI_STATUS_NO_DESKTOP_ACCESS MAKE_DXGI_STATUS(5)")
cpp_quote("#define DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_STATUS(6)")
cpp_quote("#define DXGI_STATUS_MODE_CHANGED MAKE_DXGI_STATUS(7)")
cpp_quote("#define DXGI_STATUS_MODE_CHANGE_IN_PROGRESS MAKE_DXGI_STATUS(8)")
cpp_quote("#define MAKE_DXGI_HRESULT(x) MAKE_HRESULT(1, _FACDXGI, x)")
cpp_quote("#define DXGI_ERROR_INVALID_CALL MAKE_DXGI_HRESULT(1)")
cpp_quote("#define DXGI_ERROR_NOT_FOUND MAKE_DXGI_HRESULT(2)")
cpp_quote("#define DXGI_ERROR_MORE_DATA MAKE_DXGI_HRESULT(3)")
cpp_quote("#define DXGI_ERROR_UNSUPPORTED MAKE_DXGI_HRESULT(4)")
cpp_quote("#define DXGI_ERROR_DEVICE_REMOVED MAKE_DXGI_HRESULT(5)")
cpp_quote("#define DXGI_ERROR_DEVICE_HUNG MAKE_DXGI_HRESULT(6)")
cpp_quote("#define DXGI_ERROR_DEVICE_RESET MAKE_DXGI_HRESULT(7)")
cpp_quote("#define DXGI_ERROR_WAS_STILL_DRAWING MAKE_DXGI_HRESULT(10)")
cpp_quote("#define DXGI_ERROR_FRAME_STATISTICS_DISJOINT MAKE_DXGI_HRESULT(11)")
cpp_quote("#define DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE MAKE_DXGI_HRESULT(12)")
cpp_quote("#define DXGI_ERROR_DRIVER_INTERNAL_ERROR MAKE_DXGI_HRESULT(32)")
cpp_quote("#define DXGI_ERROR_NONEXCLUSIVE MAKE_DXGI_HRESULT(33)")
cpp_quote("#define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE MAKE_DXGI_HRESULT(34)")
cpp_quote("#if 0")
cpp_quote("#endif")
typedef enum DXGI_SWAP_EFFECT {
typedef enum DXGI_RESIDENCY {
typedef enum DXGI_SWAP_CHAIN_FLAG {
[
]
interface IDXGIObject : IUnknown
{
);
);
);
);
}
[
]
interface IDXGIDeviceSubObject : IDXGIObject
{
);
}
[
]
interface IDXGIResource : IDXGIDeviceSubObject
{
}
[
]
interface IDXGIKeyedMutex : IDXGIDeviceSubObject
{
}
[
]
interface IDXGISurface : IDXGIDeviceSubObject
{
);
);
);
}
[
]
interface IDXGIOutput : IDXGIObject
{
);
);
);
);
);
void ReleaseOwnership(
);
);
);
);
);
);
);
}
[
]
interface IDXGIAdapter : IDXGIObject
{
);
);
);
}
cpp_quote("#define DXGI_MAX_SWAP_CHAIN_BUFFERS (16)")
cpp_quote("#define DXGI_PRESENT_TEST __MSABI_LONG(0x00000001U)")
cpp_quote("#define DXGI_PRESENT_DO_NOT_SEQUENCE __MSABI_LONG(0x00000002U)")
cpp_quote("#define DXGI_PRESENT_RESTART __MSABI_LONG(0x00000004U)")
cpp_quote("#define DXGI_PRESENT_DO_NOT_WAIT __MSABI_LONG(0x00000008U)")
cpp_quote("#define DXGI_PRESENT_STEREO_PREFER_RIGHT __MSABI_LONG(0x00000010U)")
cpp_quote("#define DXGI_PRESENT_STEREO_TEMPORARY_MONO __MSABI_LONG(0x00000020U)")
cpp_quote("#define DXGI_PRESENT_RESTRICT_TO_OUTPUT __MSABI_LONG(0x00000040U)")
[
]
interface IDXGISwapChain : IDXGIDeviceSubObject
{
);
);
);
);
);
);
);
);
);
);
}
cpp_quote("#define DXGI_MWA_NO_WINDOW_CHANGES 0x1")
cpp_quote("#define DXGI_MWA_NO_ALT_ENTER 0x2")
cpp_quote("#define DXGI_MWA_NO_PRINT_SCREEN 0x4")
cpp_quote("#define DXGI_MWA_VALID 0x7")
[
]
interface IDXGIFactory : IDXGIObject
{
);
);
);
);
);
}
[
]
interface IDXGIDevice : IDXGIObject
{
);
);
);
);
);
}
typedef enum DXGI_ADAPTER_FLAG {
DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xFFFFFFFF
[
]
interface IDXGIAdapter1 : IDXGIAdapter
{
}
[
]
interface IDXGIFactory1 : IDXGIFactory
{
}