You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 regels
2.5 KiB

  1. using System;
  2. using SharpDX.DXGI;
  3. namespace RenderHookAPI.Hook
  4. {
  5. internal static class DXGI
  6. {
  7. public enum DXGISwapChainVTbl : short
  8. {
  9. // IUnknown
  10. QueryInterface = 0,
  11. AddRef = 1,
  12. Release = 2,
  13. // IDXGIObject
  14. SetPrivateData = 3,
  15. SetPrivateDataInterface = 4,
  16. GetPrivateData = 5,
  17. GetParent = 6,
  18. // IDXGIDeviceSubObject
  19. GetDevice = 7,
  20. // IDXGISwapChain
  21. Present = 8,
  22. GetBuffer = 9,
  23. SetFullscreenState = 10,
  24. GetFullscreenState = 11,
  25. GetDesc = 12,
  26. ResizeBuffers = 13,
  27. ResizeTarget = 14,
  28. GetContainingOutput = 15,
  29. GetFrameStatistics = 16,
  30. GetLastPresentCount = 17,
  31. }
  32. public const int DXGI_SWAPCHAIN_METHOD_COUNT = 18;
  33. public static SharpDX.DXGI.SwapChainDescription CreateSwapChainDescription(IntPtr windowHandle)
  34. {
  35. return new SharpDX.DXGI.SwapChainDescription
  36. {
  37. BufferCount = 1,
  38. Flags = SharpDX.DXGI.SwapChainFlags.None,
  39. IsWindowed = true,
  40. ModeDescription = new SharpDX.DXGI.ModeDescription(100, 100, new Rational(60, 1), SharpDX.DXGI.Format.R8G8B8A8_UNorm),
  41. OutputHandle = windowHandle,
  42. SampleDescription = new SharpDX.DXGI.SampleDescription(1, 0),
  43. SwapEffect = SharpDX.DXGI.SwapEffect.Discard,
  44. Usage = SharpDX.DXGI.Usage.RenderTargetOutput
  45. };
  46. }
  47. /*
  48. *
  49. typedef enum DXGI_MODE_SCANLINE_ORDER
  50. {
  51. DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0,
  52. DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1,
  53. DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2,
  54. DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3
  55. } DXGI_MODE_SCANLINE_ORDER;
  56. typedef enum DXGI_MODE_SCALING
  57. {
  58. DXGI_MODE_SCALING_UNSPECIFIED = 0,
  59. DXGI_MODE_SCALING_CENTERED = 1,
  60. DXGI_MODE_SCALING_STRETCHED = 2
  61. } DXGI_MODE_SCALING;
  62. typedef enum DXGI_MODE_ROTATION
  63. {
  64. DXGI_MODE_ROTATION_UNSPECIFIED = 0,
  65. DXGI_MODE_ROTATION_IDENTITY = 1,
  66. DXGI_MODE_ROTATION_ROTATE90 = 2,
  67. DXGI_MODE_ROTATION_ROTATE180 = 3,
  68. DXGI_MODE_ROTATION_ROTATE270 = 4
  69. } DXGI_MODE_ROTATION;
  70. typedef struct DXGI_MODE_DESC
  71. {
  72. UINT Width;
  73. UINT Height;
  74. DXGI_RATIONAL RefreshRate;
  75. DXGI_FORMAT Format;
  76. DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
  77. DXGI_MODE_SCALING Scaling;
  78. } DXGI_MODE_DESC;
  79. * */
  80. }
  81. }