using System; using SharpDX.DXGI; namespace RenderHookAPI.Hook { internal static class DXGI { public enum DXGISwapChainVTbl : short { // IUnknown QueryInterface = 0, AddRef = 1, Release = 2, // IDXGIObject SetPrivateData = 3, SetPrivateDataInterface = 4, GetPrivateData = 5, GetParent = 6, // IDXGIDeviceSubObject GetDevice = 7, // IDXGISwapChain Present = 8, GetBuffer = 9, SetFullscreenState = 10, GetFullscreenState = 11, GetDesc = 12, ResizeBuffers = 13, ResizeTarget = 14, GetContainingOutput = 15, GetFrameStatistics = 16, GetLastPresentCount = 17, } public const int DXGI_SWAPCHAIN_METHOD_COUNT = 18; public static SharpDX.DXGI.SwapChainDescription CreateSwapChainDescription(IntPtr windowHandle) { return new SharpDX.DXGI.SwapChainDescription { BufferCount = 1, Flags = SharpDX.DXGI.SwapChainFlags.None, IsWindowed = true, ModeDescription = new SharpDX.DXGI.ModeDescription(100, 100, new Rational(60, 1), SharpDX.DXGI.Format.R8G8B8A8_UNorm), OutputHandle = windowHandle, SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0), SwapEffect = SharpDX.DXGI.SwapEffect.Discard, Usage = SharpDX.DXGI.Usage.RenderTargetOutput }; } /* * typedef enum DXGI_MODE_SCANLINE_ORDER { DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 } DXGI_MODE_SCANLINE_ORDER; typedef enum DXGI_MODE_SCALING { DXGI_MODE_SCALING_UNSPECIFIED = 0, DXGI_MODE_SCALING_CENTERED = 1, DXGI_MODE_SCALING_STRETCHED = 2 } DXGI_MODE_SCALING; typedef enum DXGI_MODE_ROTATION { DXGI_MODE_ROTATION_UNSPECIFIED = 0, DXGI_MODE_ROTATION_IDENTITY = 1, DXGI_MODE_ROTATION_ROTATE90 = 2, DXGI_MODE_ROTATION_ROTATE180 = 3, DXGI_MODE_ROTATION_ROTATE270 = 4 } DXGI_MODE_ROTATION; typedef struct DXGI_MODE_DESC { UINT Width; UINT Height; DXGI_RATIONAL RefreshRate; DXGI_FORMAT Format; DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; DXGI_MODE_SCALING Scaling; } DXGI_MODE_DESC; * */ } }