-
Notifications
You must be signed in to change notification settings - Fork 0
/
SharpDX.DXGI.xml
8737 lines (8735 loc) · 759 KB
/
SharpDX.DXGI.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<doc>
<assembly>
<name>SharpDX.DXGI</name>
</assembly>
<members>
<member name="P:SharpDX.DXGI.Adapter.Outputs">
<summary>
Gets all outputs from this adapter.
</summary>
<msdn-id>bb174525</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::EnumOutputs([In] unsigned int Output,[Out] IDXGIOutput** ppOutput)</unmanaged>
<unmanaged-short>IDXGIAdapter::EnumOutputs</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.IsInterfaceSupported(System.Type)">
<summary>
Checks to see if a device interface for a graphics component is supported by the system.
</summary>
<param name="type">The GUID of the interface of the device version for which support is being checked. For example, typeof(ID3D10Device).GUID.</param>
<returns>
<c>true</c> if the interface is supported; otherwise, <c>false</c>.
</returns>
<msdn-id>Bb174524</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::CheckInterfaceSupport([In] const GUID& InterfaceName,[Out] LARGE_INTEGER* pUMDVersion)</unmanaged>
<unmanaged-short>IDXGIAdapter::CheckInterfaceSupport</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.IsInterfaceSupported``1">
<summary>
Checks to see if a device interface for a graphics component is supported by the system.
</summary>
<typeparam name="T">the interface of the device version for which support is being checked.</typeparam>
<returns>
<c>true</c> if the interface is supported; otherwise, <c>false</c>.
</returns>
<msdn-id>Bb174524</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::CheckInterfaceSupport([In] const GUID& InterfaceName,[Out] LARGE_INTEGER* pUMDVersion)</unmanaged>
<unmanaged-short>IDXGIAdapter::CheckInterfaceSupport</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.IsInterfaceSupported``1(System.Int64@)">
<summary>
Checks to see if a device interface for a graphics component is supported by the system.
</summary>
<typeparam name="T">the interface of the device version for which support is being checked.</typeparam>
<param name="userModeVersion">The user mode driver version of InterfaceName. This is only returned if the interface is supported.</param>
<returns>
<c>true</c> if the interface is supported; otherwise, <c>false</c>.
</returns>
<msdn-id>Bb174524</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::CheckInterfaceSupport([In] const GUID& InterfaceName,[Out] LARGE_INTEGER* pUMDVersion)</unmanaged>
<unmanaged-short>IDXGIAdapter::CheckInterfaceSupport</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.IsInterfaceSupported(System.Type,System.Int64@)">
<summary>
Checks to see if a device interface for a graphics component is supported by the system.
</summary>
<param name="type">The GUID of the interface of the device version for which support is being checked. For example, typeof(ID3D10Device).GUID.</param>
<param name="userModeVersion">The user mode driver version of InterfaceName. This is only returned if the interface is supported.</param>
<returns>
<c>true</c> if the interface is supported; otherwise, <c>false</c>.
</returns>
<msdn-id>Bb174524</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::CheckInterfaceSupport([In] const GUID& InterfaceName,[Out] LARGE_INTEGER* pUMDVersion)</unmanaged>
<unmanaged-short>IDXGIAdapter::CheckInterfaceSupport</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.GetOutput(System.Int32)">
<summary>
Gets an adapter (video card) outputs.
</summary>
<param name="outputIndex">The index of the output.</param>
<returns>
An instance of <see cref="T:SharpDX.DXGI.Output"/>
</returns>
<unmanaged>HRESULT IDXGIAdapter::EnumOutputs([In] unsigned int Output,[Out] IDXGIOutput** ppOutput)</unmanaged>
<remarks>
When the EnumOutputs method succeeds and fills the ppOutput parameter with the address of the reference to the output interface, EnumOutputs increments the output interface's reference count. To avoid a memory leak, when you finish using the output interface, call the Release method to decrement the reference count.EnumOutputs first returns the output on which the desktop primary is displayed. This adapter corresponds with an index of zero. EnumOutputs then returns other outputs.
</remarks>
<exception cref="T:SharpDX.SharpDXException">if the index is greater than the number of outputs, result code <see cref="F:SharpDX.DXGI.ResultCode.NotFound"/></exception>
<msdn-id>bb174525</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::EnumOutputs([In] unsigned int Output,[Out] IDXGIOutput** ppOutput)</unmanaged>
<unmanaged-short>IDXGIAdapter::EnumOutputs</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.GetOutputCount">
<summary>
Return the number of available outputs from this adapter.
</summary>
<returns>The number of outputs</returns>
<msdn-id>bb174525</msdn-id>
<unmanaged>HRESULT IDXGIAdapter::EnumOutputs([In] unsigned int Output,[Out] IDXGIOutput** ppOutput)</unmanaged>
<unmanaged-short>IDXGIAdapter::EnumOutputs</unmanaged-short>
</member>
<member name="P:SharpDX.DXGI.Adapter.Description">
<summary>
<p>Gets a DXGI 1.0 description of an adapter (or video card).</p>
</summary>
<remarks>
<p>Graphics apps can use the DXGI API to retrieve an accurate set of graphics memory values on systems that have Windows Display Driver Model (WDDM) drivers. The following are the critical steps involved.</p><ul> <li> Graphics driver model determination ? Because DXGI is only available on systems with WDDM drivers, the app must first confirm the driver model by using the following API. <pre> HasWDDMDriver()
{ LPDIRECT3DCREATE9EX pD3D9Create9Ex = <c>null</c>; HMODULE hD3D9 = <c>null</c>; hD3D9 = LoadLibrary( L"d3d9.dll" ); if ( <c>null</c> == hD3D9 ) { return false; } // /* Try to create IDirect3D9Ex interface (also known as a DX9L interface). This interface can only be created if the driver is a WDDM driver. */ // pD3D9Create9Ex = (LPDIRECT3DCREATE9EX) GetProcAddress( hD3D9, "Direct3DCreate9Ex" ); return pD3D9Create9Ex != <c>null</c>;
} </pre> </li> <li> Retrieval of graphics memory values.? After the app determines the driver model to be WDDM, the app can use the Direct3D 10 or later API and DXGI to get the amount of graphics memory. After you create a Direct3D device, use this code to obtain a <strong><see cref = "T:SharpDX.DXGI.AdapterDescription"/></strong> structure that contains the amount of available graphics memory. <pre> <see cref = "T:SharpDX.DXGI.Device"/> * pDXGIDevice;
hr = g_pd3dDevice->QueryInterface(__uuidof(<see cref = "T:SharpDX.DXGI.Device"/>), (void **)&pDXGIDevice);
<see cref = "T:SharpDX.DXGI.Adapter"/> * pDXGIAdapter;
pDXGIDevice->GetAdapter(&pDXGIAdapter);
<see cref = "T:SharpDX.DXGI.AdapterDescription"/> adapterDesc;
pDXGIAdapter->GetDesc(&adapterDesc); </pre> </li> </ul>
</remarks>
<doc-id>bb174526</doc-id>
<unmanaged>GetDesc</unmanaged>
<unmanaged-short>GetDesc</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.GetOutput(System.Int32,SharpDX.DXGI.Output@)">
<summary>
<p>Enumerate adapter (video card) outputs.</p>
</summary>
<param name = "output"><dd> <p>The index of the output.</p> </dd></param>
<param name = "outputOut"><dd> <p>The address of a reference to an <strong><see cref = "T:SharpDX.DXGI.Output"/></strong> interface at the position specified by the <em>Output</em> parameter.</p> </dd></param>
<returns><p>A code that indicates success or failure (see DXGI_ERROR). <see cref = "!:NotFound"/> is returned if the index is greater than the number of outputs.</p><p>If the adapter came from a device created using D3D_DRIVER_TYPE_WARP, then the adapter has no outputs, so <see cref = "!:NotFound"/> is returned.</p></returns>
<remarks>
<strong>Note</strong>??If you call this API in a Session 0 process, it returns <strong><see cref = "!:NotCurrentlyAvailable"/></strong>.?<p>When the <strong>EnumOutputs</strong> method succeeds and fills the <em>ppOutput</em> parameter with the address of the reference to the output interface, <strong>EnumOutputs</strong> increments the output interface's reference count. To avoid a memory leak, when you finish using the output interface, call the <strong>Release</strong> method to decrement the reference count.</p><p><strong>EnumOutputs</strong> first returns the output on which the desktop primary is displayed. This output corresponds with an index of zero. <strong>EnumOutputs</strong> then returns other outputs.</p>
</remarks>
<doc-id>bb174525</doc-id>
<unmanaged>HRESULT IDXGIAdapter::EnumOutputs([In] unsigned int Output,[Out] IDXGIOutput** ppOutput)</unmanaged>
<unmanaged-short>IDXGIAdapter::EnumOutputs</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.GetDescription(SharpDX.DXGI.AdapterDescription@)">
<summary>
<p>Gets a DXGI 1.0 description of an adapter (or video card).</p>
</summary>
<param name = "descRef"><dd> <p>A reference to a <strong><see cref = "T:SharpDX.DXGI.AdapterDescription"/></strong> structure that describes the adapter. This parameter must not be <strong><c>null</c></strong>. On feature level 9 graphics hardware, <strong>GetDesc</strong> returns zeros for the PCI ID in the <strong>VendorId</strong>, <strong>DeviceId</strong>, <strong>SubSysId</strong>, and <strong>Revision</strong> members of <strong><see cref = "T:SharpDX.DXGI.AdapterDescription"/></strong> and ?Software Adapter? for the description string in the <strong>Description</strong> member.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise returns E_INVALIDARG if the <em>pDesc</em> parameter is <strong><c>null</c></strong>. </p></returns>
<remarks>
<p>Graphics apps can use the DXGI API to retrieve an accurate set of graphics memory values on systems that have Windows Display Driver Model (WDDM) drivers. The following are the critical steps involved.</p><ul> <li> Graphics driver model determination ? Because DXGI is only available on systems with WDDM drivers, the app must first confirm the driver model by using the following API. <pre> HasWDDMDriver()
{ LPDIRECT3DCREATE9EX pD3D9Create9Ex = <c>null</c>; HMODULE hD3D9 = <c>null</c>; hD3D9 = LoadLibrary( L"d3d9.dll" ); if ( <c>null</c> == hD3D9 ) { return false; } // /* Try to create IDirect3D9Ex interface (also known as a DX9L interface). This interface can only be created if the driver is a WDDM driver. */ // pD3D9Create9Ex = (LPDIRECT3DCREATE9EX) GetProcAddress( hD3D9, "Direct3DCreate9Ex" ); return pD3D9Create9Ex != <c>null</c>;
} </pre> </li> <li> Retrieval of graphics memory values.? After the app determines the driver model to be WDDM, the app can use the Direct3D 10 or later API and DXGI to get the amount of graphics memory. After you create a Direct3D device, use this code to obtain a <strong><see cref = "T:SharpDX.DXGI.AdapterDescription"/></strong> structure that contains the amount of available graphics memory. <pre> <see cref = "T:SharpDX.DXGI.Device"/> * pDXGIDevice;
hr = g_pd3dDevice->QueryInterface(__uuidof(<see cref = "T:SharpDX.DXGI.Device"/>), (void **)&pDXGIDevice);
<see cref = "T:SharpDX.DXGI.Adapter"/> * pDXGIAdapter;
pDXGIDevice->GetAdapter(&pDXGIAdapter);
<see cref = "T:SharpDX.DXGI.AdapterDescription"/> adapterDesc;
pDXGIAdapter->GetDesc(&adapterDesc); </pre> </li> </ul>
</remarks>
<doc-id>bb174526</doc-id>
<unmanaged>HRESULT IDXGIAdapter::GetDesc([Out] DXGI_ADAPTER_DESC* pDesc)</unmanaged>
<unmanaged-short>IDXGIAdapter::GetDesc</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Adapter.CheckInterfaceSupport(System.Guid,System.Int64@)">
<summary>
<p>Checks whether the system supports a device interface for a graphics component.</p>
</summary>
<param name = "interfaceName"><dd> <p>The <see cref = "T:System.Guid"/> of the interface of the device version for which support is being checked. For example, __uuidof(ID3D10Device).</p> </dd></param>
<param name = "uMDVersionRef"><dd> <p>The user mode driver version of <em>InterfaceName</em>. This is returned only if the interface is supported, otherwise this parameter will be <strong><c>null</c></strong>.</p> </dd></param>
<returns><p><see cref = "F:SharpDX.Result.Ok"/> indicates that the interface is supported, otherwise <see cref = "!:Unsupported"/> is returned (For more information, see DXGI_ERROR).</p></returns>
<remarks>
<strong>Note</strong>??You can use <strong>CheckInterfaceSupport</strong> only to check whether a Direct3D 10.x interface is supported, and only on Windows Vista SP1 and later versions of the operating system. If you try to use <strong>CheckInterfaceSupport</strong> to check whether a Direct3D 11.x and later version interface is supported, <strong>CheckInterfaceSupport</strong> returns <see cref = "!:Unsupported"/>. Therefore, do not use <strong>CheckInterfaceSupport</strong>. Instead, to verify whether the operating system supports a particular interface, try to create the interface. For example, if you call the <strong>ID3D11Device::CreateBlendState</strong> method and it fails, the operating system does not support the <strong><see cref = "!:SharpDX.Direct3D11.BlendState"/></strong> interface.?
</remarks>
<doc-id>bb174524</doc-id>
<unmanaged>HRESULT IDXGIAdapter::CheckInterfaceSupport([In] const GUID& InterfaceName,[Out] LARGE_INTEGER* pUMDVersion)</unmanaged>
<unmanaged-short>IDXGIAdapter::CheckInterfaceSupport</unmanaged-short>
</member>
<member name="T:SharpDX.DXGI.AssemblyDoc">
<summary>
The <see cref="A:SharpDX.DXGI"/> assembly provides managed DXGI API.
</summary>
<msdn-id>hh404534</msdn-id>
<unmanaged>DXGI</unmanaged>
<unmanaged-short>DXGI</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.QueryResourceResidency(SharpDX.ComObject[])">
<summary>
Gets the residency status of an array of resources.
</summary>
<remarks>
The information returned by the pResidencyStatus argument array describes the residency status at the time that the QueryResourceResidency method was called. Note that the residency status will constantly change. If you call the QueryResourceResidency method during a device removed state, the pResidencyStatus argument will return the DXGI_RESIDENCY_EVICTED_TO_DISK flag. Note??This method should not be called every frame as it incurs a non-trivial amount of overhead.
</remarks>
<param name="comObjects">An array of <see cref="T:SharpDX.DXGI.Resource"/> interfaces. </param>
<returns>Returns an array of <see cref="T:SharpDX.DXGI.Residency"/> flags. Each element describes the residency status for corresponding element in the ppResources argument array. </returns>
<unmanaged>HRESULT IDXGIDevice::QueryResourceResidency([In, Buffer] const IUnknown** ppResources,[Out, Buffer] DXGI_RESIDENCY* pResidencyStatus,[None] int NumResources)</unmanaged>
</member>
<member name="P:SharpDX.DXGI.Device.Adapter">
<summary>
<p>Returns the adapter for the specified device.</p>
</summary>
<remarks>
<p>If the <strong>GetAdapter</strong> method succeeds, the reference count on the adapter interface will be incremented. To avoid a memory leak, be sure to release the interface when you are finished using it.</p>
</remarks>
<doc-id>bb174531</doc-id>
<unmanaged>GetAdapter</unmanaged>
<unmanaged-short>GetAdapter</unmanaged-short>
</member>
<member name="P:SharpDX.DXGI.Device.GPUThreadPriority">
<summary>
<p>Gets or sets the GPU thread priority.</p>
</summary>
<doc-id>bb174532</doc-id>
<unmanaged>GetGPUThreadPriority / SetGPUThreadPriority</unmanaged>
<unmanaged-short>GetGPUThreadPriority</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.GetAdapter(SharpDX.DXGI.Adapter@)">
<summary>
<p>Returns the adapter for the specified device.</p>
</summary>
<param name = "adapterRef"><dd> <p>The address of an <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> interface reference to the adapter. This parameter must not be <strong><c>null</c></strong>.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns one of the DXGI_ERROR that indicates failure. If the <em>pAdapter</em> parameter is <strong><c>null</c></strong> this method returns E_INVALIDARG.</p></returns>
<remarks>
<p>If the <strong>GetAdapter</strong> method succeeds, the reference count on the adapter interface will be incremented. To avoid a memory leak, be sure to release the interface when you are finished using it.</p>
</remarks>
<doc-id>bb174531</doc-id>
<unmanaged>HRESULT IDXGIDevice::GetAdapter([Out] IDXGIAdapter** pAdapter)</unmanaged>
<unmanaged-short>IDXGIDevice::GetAdapter</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.CreateSurface(SharpDX.DXGI.SurfaceDescription@,System.Int32,System.Int32,System.Nullable{SharpDX.DXGI.SharedResource},SharpDX.DXGI.Surface@)">
<summary>
<p>Returns a surface. This method is used internally and you should not call it directly in your application.</p>
</summary>
<param name = "descRef"><dd> <p>A reference to a <strong><see cref = "T:SharpDX.DXGI.SurfaceDescription"/></strong> structure that describes the surface.</p> </dd></param>
<param name = "numSurfaces"><dd> <p>The number of surfaces to create.</p> </dd></param>
<param name = "usage"><dd> <p>A DXGI_USAGE flag that specifies how the surface is expected to be used.</p> </dd></param>
<param name = "sharedResourceRef"><dd> <p>An optional reference to a <strong><see cref = "T:SharpDX.DXGI.SharedResource"/></strong> structure that contains shared resource information for opening views of such resources.</p> </dd></param>
<param name = "surfaceOut"><dd> <p>The address of an <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong> interface reference to the first created surface.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR.</p></returns>
<remarks>
<p>The <strong>CreateSurface</strong> method creates a buffer to exchange data between one or more devices. It is used internally, and you should not directly call it.</p><p>The runtime automatically creates an <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong> interface when it creates a Direct3D resource object that represents a surface. For example, the runtime creates an <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong> interface when it calls <strong>ID3D11Device::CreateTexture2D</strong> or <strong>ID3D10Device::CreateTexture2D</strong> to create a 2D texture. To retrieve the <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong> interface that represents the 2D texture surface, call <strong>ID3D11Texture2D::QueryInterface</strong> or <strong>ID3D10Texture2D::QueryInterface</strong>. In this call, you must pass the identifier of <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong>. If the 2D texture has only a single MIP-map level and does not consist of an array of textures, <strong>QueryInterface</strong> succeeds and returns a reference to the <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong> interface reference. Otherwise, <strong>QueryInterface</strong> fails and does not return the reference to <strong><see cref = "T:SharpDX.DXGI.Surface"/></strong>.
</p>
</remarks>
<doc-id>bb174530</doc-id>
<unmanaged>HRESULT IDXGIDevice::CreateSurface([In] const DXGI_SURFACE_DESC* pDesc,[In] unsigned int NumSurfaces,[In] unsigned int Usage,[In, Optional] const DXGI_SHARED_RESOURCE* pSharedResource,[Out] IDXGISurface** ppSurface)</unmanaged>
<unmanaged-short>IDXGIDevice::CreateSurface</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.QueryResourceResidency(SharpDX.IUnknown[],SharpDX.DXGI.Residency[],System.Int32)">
<summary>
<p>Gets the residency status of an array of resources.</p>
</summary>
<param name = "resourcesOut"><dd> <p>An array of <strong><see cref = "T:SharpDX.DXGI.Resource"/></strong> interfaces.</p> </dd></param>
<param name = "residencyStatusRef"><dd> <p>An array of <strong><see cref = "T:SharpDX.DXGI.Residency"/></strong> flags. Each element describes the residency status for corresponding element in the <em>ppResources</em> argument array.</p> </dd></param>
<param name = "numResources"><dd> <p>The number of resources in the <em>ppResources</em> argument array and <em>pResidencyStatus</em> argument array.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns <see cref = "!:DeviceRemoved"/>, E_INVALIDARG, or E_POINTER (see Common <see cref = "T:SharpDX.Result"/> Values and WinError.h for more information).</p></returns>
<remarks>
<p>The information returned by the <em>pResidencyStatus</em> argument array describes the residency status at the time that the <strong>QueryResourceResidency</strong> method was called. </p><strong>Note</strong>??The residency status will constantly change.?<p>If you call the <strong>QueryResourceResidency</strong> method during a device removed state, the <em>pResidencyStatus</em> argument will return the <strong>DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY</strong> flag.</p><strong>Note</strong>??This method should not be called every frame as it incurs a non-trivial amount of overhead.?
</remarks>
<doc-id>bb174533</doc-id>
<unmanaged>HRESULT IDXGIDevice::QueryResourceResidency([In, Buffer] const IUnknown** ppResources,[Out, Buffer] DXGI_RESIDENCY* pResidencyStatus,[In] unsigned int NumResources)</unmanaged>
<unmanaged-short>IDXGIDevice::QueryResourceResidency</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.SetGPUThreadPriority(System.Int32)">
<summary>
<p>Sets the GPU thread priority.</p>
</summary>
<param name = "priority"><dd> <p>A value that specifies the required GPU thread priority. This value must be between -7 and 7, inclusive, where 0 represents normal priority.</p> </dd></param>
<returns><p>Return <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns E_INVALIDARG if the <em>Priority</em> parameter is invalid.</p></returns>
<remarks>
<p>The values for the <em>Priority</em> parameter function as follows:</p><ul> <li>Positive values increase the likelihood that the GPU scheduler will grant GPU execution cycles to the device when rendering.</li> <li>Negative values lessen the likelihood that the device will receive GPU execution cycles when devices compete for them.</li> <li>The device is guaranteed to receive some GPU execution cycles at all settings.</li> </ul><p>To use the <strong>SetGPUThreadPriority</strong> method, you should have a comprehensive understanding of GPU scheduling. You should profile your application to ensure that it behaves as intended. If used inappropriately, the <strong>SetGPUThreadPriority</strong> method can impede rendering speed and result in a poor user experience.</p>
</remarks>
<doc-id>bb174534</doc-id>
<unmanaged>HRESULT IDXGIDevice::SetGPUThreadPriority([In] int Priority)</unmanaged>
<unmanaged-short>IDXGIDevice::SetGPUThreadPriority</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Device.GetGPUThreadPriority(System.Int32@)">
<summary>
<p>Gets the GPU thread priority.</p>
</summary>
<param name = "priorityRef"><dd> <p>A reference to a variable that receives a value that indicates the current GPU thread priority. The value will be between -7 and 7, inclusive, where 0 represents normal priority.</p> </dd></param>
<returns><p>Return <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns E_POINTER if the <em>pPriority</em> parameter is <strong><c>null</c></strong>.</p></returns>
<doc-id>bb174532</doc-id>
<unmanaged>HRESULT IDXGIDevice::GetGPUThreadPriority([Out] int* pPriority)</unmanaged>
<unmanaged-short>IDXGIDevice::GetGPUThreadPriority</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DeviceChild.GetDevice``1">
<summary>
Retrieves the device.
</summary>
<typeparam name="T">The interface that is returned can be any interface published by the device.</typeparam>
<returns>The associated device. </returns>
<unmanaged>HRESULT IDXGIDeviceSubObject::GetDevice([In] GUID* riid,[Out] void** ppDevice)</unmanaged>
</member>
<member name="P:SharpDX.DXGI.DeviceChild.DebugName">
<summary>
Gets or sets the debug-name for this object.
</summary>
<value>
The debug name.
</value>
</member>
<member name="M:SharpDX.DXGI.DeviceChild.GetDevice(System.Guid,System.IntPtr@)">
<summary>
<p>Retrieves the device.</p>
</summary>
<param name = "riid"><dd> <p>The reference id for the device.</p> </dd></param>
<param name = "deviceOut"><dd> <p>The address of a reference to the device.</p> </dd></param>
<returns><p>A code that indicates success or failure (see DXGI_ERROR).</p></returns>
<remarks>
<p>The type of interface that is returned can be any interface published by the device. For example, it could be an <see cref = "T:SharpDX.DXGI.Device"/> * called pDevice, and therefore the REFIID would be obtained by calling __uuidof(pDevice).</p>
</remarks>
<doc-id>bb174529</doc-id>
<unmanaged>HRESULT IDXGIDeviceSubObject::GetDevice([In] const GUID& riid,[Out] void** ppDevice)</unmanaged>
<unmanaged-short>IDXGIDeviceSubObject::GetDevice</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug.TryCreate">
<summary>
If the DXGI debug layer is installed (e.g. on developer machines), creates the DXGI Debug object.
Otherwise, returns null.
</summary>
<remarks>
Currently doesn't work for Windows Store (aka UWP) apps
</remarks>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug.ReportLiveObjects(System.Guid,SharpDX.DXGI.DebugRloFlags)">
<summary>
<p>Reports info about the lifetime of an object or objects.</p>
</summary>
<param name = "apiid"><dd> <p>The globally unique identifier (<see cref = "T:System.Guid"/>) of the object or objects to get info about. Use one of the <strong>DXGI_DEBUG_ID</strong> GUIDs.</p> </dd></param>
<param name = "flags"><dd> <p>A <strong><see cref = "T:SharpDX.DXGI.DebugRloFlags"/></strong>-typed value that specifies the amount of info to report.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR.</p></returns>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780352</doc-id>
<unmanaged>HRESULT IDXGIDebug::ReportLiveObjects([In] GUID apiid,[In] DXGI_DEBUG_RLO_FLAGS flags)</unmanaged>
<unmanaged-short>IDXGIDebug::ReportLiveObjects</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug1.TryCreate">
<summary>
If the DXGI debug layer is installed (e.g. on developer machines), creates the DXGI Debug1 object.
Otherwise, returns null.
</summary>
<remarks>
Currently doesn't work for Windows Store (aka UWP) apps
</remarks>
</member>
<member name="P:SharpDX.DXGI.DXGIDebug1.IsLeakTrackingEnabledForThread">
<summary>
No documentation.
</summary>
<unmanaged>IsLeakTrackingEnabledForThread</unmanaged>
<unmanaged-short>IsLeakTrackingEnabledForThread</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug1.EnableLeakTrackingForThread">
<summary>
No documentation.
</summary>
<unmanaged>void IDXGIDebug1::EnableLeakTrackingForThread()</unmanaged>
<unmanaged-short>IDXGIDebug1::EnableLeakTrackingForThread</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug1.DisableLeakTrackingForThread">
<summary>
No documentation.
</summary>
<unmanaged>void IDXGIDebug1::DisableLeakTrackingForThread()</unmanaged>
<unmanaged-short>IDXGIDebug1::DisableLeakTrackingForThread</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIDebug1.IsLeakTrackingEnabledForThread_">
<summary>
No documentation.
</summary>
<returns>No documentation.</returns>
<unmanaged>BOOL IDXGIDebug1::IsLeakTrackingEnabledForThread()</unmanaged>
<unmanaged-short>IDXGIDebug1::IsLeakTrackingEnabledForThread</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIObject.GetParent``1">
<summary>
Gets the parent of the object.
</summary>
<typeparam name="T">Type of the parent object</typeparam>
<returns>Returns the parent object based on the GUID of the type of the parent object.</returns>
<msdn-id>bb174542</msdn-id>
<unmanaged>HRESULT IDXGIObject::GetParent([In] const GUID& riid,[Out] void** ppParent)</unmanaged>
<unmanaged-short>IDXGIObject::GetParent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIObject.SetPrivateData(System.Guid,System.Int32,System.IntPtr)">
<summary>
<p>Sets application-defined data to the object and associates that data with a <see cref = "T:System.Guid"/>.</p>
</summary>
<param name = "name"><dd> <p>A <see cref = "T:System.Guid"/> that identifies the data. Use this <see cref = "T:System.Guid"/> in a call to <strong>GetPrivateData</strong> to get the data.</p> </dd></param>
<param name = "dataSize"><dd> <p>The size of the object's data.</p> </dd></param>
<param name = "dataRef"><dd> <p>A reference to the object's data.</p> </dd></param>
<returns><p>Returns one of the DXGI_ERROR values.</p></returns>
<remarks>
<p><strong>SetPrivateData</strong> makes a copy of the specified data and stores it with the object.</p><p>Private data that <strong>SetPrivateData</strong> stores in the object occupies the same storage space as private data that is stored by associated Direct3D objects (for example, by a Microsoft Direct3D?11 device through <strong>ID3D11Device::SetPrivateData</strong> or by a Direct3D?11 child device through <strong>ID3D11DeviceChild::SetPrivateData</strong>).</p><p>The debug layer reports memory leaks by outputting a list of object interface references along with their friendly names. The default friendly name is "<unnamed>". You can set the friendly name so that you can determine if the corresponding object interface reference caused the leak. To set the friendly name, use the <strong>SetPrivateData</strong> method and the well-known private data <see cref = "T:System.Guid"/> (<strong><see cref = "!:DebugObjectName"/></strong>) that is in D3Dcommon.h. For example, to give pContext a friendly name of <em>My name</em>, use the following code:</p><pre> static const char c_szName[] = "My name";
hr = pContext->SetPrivateData( <see cref = "!:DebugObjectName"/>, sizeof( c_szName ) - 1, c_szName );
</pre><p>You can use <strong><see cref = "!:DebugObjectName"/></strong> to track down memory leaks and understand performance characteristics of your applications. This information is reflected in the output of the debug layer that is related to memory leaks (<strong>ID3D11Debug::ReportLiveDeviceObjects</strong>) and with the event tracing for Windows events that we've added to Windows?8.
</p>
</remarks>
<doc-id>bb174544</doc-id>
<unmanaged>HRESULT IDXGIObject::SetPrivateData([In] const GUID& Name,[In] unsigned int DataSize,[In, Buffer] const void* pData)</unmanaged>
<unmanaged-short>IDXGIObject::SetPrivateData</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIObject.SetPrivateDataInterface(System.Guid,SharpDX.IUnknown)">
<summary>
<p>Set an interface in the object's private data.</p>
</summary>
<param name = "name"><dd> <p>A <see cref = "T:System.Guid"/> identifying the interface.</p> </dd></param>
<param name = "unknownRef"><dd> <p>The interface to set.</p> </dd></param>
<returns><p>Returns one of the following DXGI_ERROR.</p></returns>
<remarks>
<p>This API associates an interface reference with the object.</p><p>When the interface is set its reference count is incremented. When the data are overwritten (by calling SPD or SPDI with the same <see cref = "T:System.Guid"/>) or the object is destroyed, ::Release() is called and the interface's reference count is decremented.</p>
</remarks>
<doc-id>bb174545</doc-id>
<unmanaged>HRESULT IDXGIObject::SetPrivateDataInterface([In] const GUID& Name,[In, Optional] const IUnknown* pUnknown)</unmanaged>
<unmanaged-short>IDXGIObject::SetPrivateDataInterface</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIObject.GetPrivateData(System.Guid,System.Int32@,System.IntPtr)">
<summary>
<p>Get a reference to the object's data.</p>
</summary>
<param name = "name"><dd> <p>A <see cref = "T:System.Guid"/> identifying the data.</p> </dd></param>
<param name = "dataSizeRef"><dd> <p>The size of the data.</p> </dd></param>
<param name = "dataRef"><dd> <p>Pointer to the data.</p> </dd></param>
<returns><p>Returns one of the following DXGI_ERROR.</p></returns>
<remarks>
<p>If the data returned is a reference to an <strong><see cref = "T:SharpDX.IUnknown"/></strong>, or one of its derivative classes, previously set by <strong>IDXGIObject::SetPrivateDataInterface</strong>, you must call <strong>::Release()</strong> on the reference before the reference is freed to decrement the reference count.</p><p>You can pass <strong>GUID_DeviceType</strong> in the <em>Name</em> parameter of <strong>GetPrivateData</strong> to retrieve the device type from the display adapter object (<strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong>, <strong><see cref = "T:SharpDX.DXGI.Adapter1"/></strong>, <strong><see cref = "T:SharpDX.DXGI.Adapter2"/></strong>). </p><p><strong>To get the type of device on which the display adapter was created</strong></p><ol> <li>Call <strong>IUnknown::QueryInterface</strong> on the <strong><see cref = "!:SharpDX.Direct3D11.Device"/></strong> or <strong>ID3D10Device</strong> object to retrieve the <strong><see cref = "T:SharpDX.DXGI.Device"/></strong> object.</li> <li>Call <strong>GetParent</strong> on the <strong><see cref = "T:SharpDX.DXGI.Device"/></strong> object to retrieve the <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> object.</li> <li>Call <strong>GetPrivateData</strong> on the <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> object with <strong>GUID_DeviceType</strong> to retrieve the type of device on which the display adapter was created. <em>pData</em> will point to a value from the driver-type enumeration (for example, a value from <strong><see cref = "T:SharpDX.Direct3D.DriverType"/></strong>).</li> </ol><p>On Windows?7 or earlier, this type is either a value from <strong>D3D10_DRIVER_TYPE</strong> or <strong><see cref = "T:SharpDX.Direct3D.DriverType"/></strong> depending on which kind of device was created. On Windows?8, this type is always a value from <strong><see cref = "T:SharpDX.Direct3D.DriverType"/></strong>. Don't use <strong>IDXGIObject::SetPrivateData</strong> with <strong>GUID_DeviceType</strong> because the behavior when doing so is undefined.</p>
</remarks>
<doc-id>bb174543</doc-id>
<unmanaged>HRESULT IDXGIObject::GetPrivateData([In] const GUID& Name,[InOut] unsigned int* pDataSize,[Out, Buffer] void* pData)</unmanaged>
<unmanaged-short>IDXGIObject::GetPrivateData</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.DXGIObject.GetParent(System.Guid,System.IntPtr@)">
<summary>
<p>Gets the parent of the object.</p>
</summary>
<param name = "riid"><dd> <p>The ID of the requested interface.</p> </dd></param>
<param name = "parentOut"><dd> <p>The address of a reference to the parent object.</p> </dd></param>
<returns><p>Returns one of the DXGI_ERROR values.</p></returns>
<doc-id>bb174542</doc-id>
<unmanaged>HRESULT IDXGIObject::GetParent([In] const GUID& riid,[Out] void** ppParent)</unmanaged>
<unmanaged-short>IDXGIObject::GetParent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory.GetAdapter(System.Int32)">
<summary>
Gets both adapters (video cards) with or without outputs.
</summary>
<param name="index"><para>The index of the adapter to enumerate.</para></param>
<returns>a reference to an <see cref="T:SharpDX.DXGI.Adapter"/> interface at the position specified by the Adapter parameter</returns>
<remarks>
When you create a factory, the factory enumerates the set of adapters that are available in the system. Therefore, if you change the adapters in a system, you must destroy and recreate the <see cref="T:SharpDX.DXGI.Factory"/> object. The number of adapters in a system changes when you add or remove a display card, or dock or undock a laptop.When the EnumAdapters method succeeds and fills the ppAdapter parameter with the address of the reference to the adapter interface, EnumAdapters increments the adapter interface's reference count. When you finish using the adapter interface, call the Release method to decrement the reference count before you destroy the reference.EnumAdapters first returns the local adapter with the output on which the desktop primary is displayed. This adapter corresponds with an index of zero. EnumAdapters then returns other adapters with outputs.
</remarks>
<unmanaged>HRESULT IDXGIFactory::EnumAdapters([In] unsigned int Adapter,[Out] IDXGIAdapter** ppAdapter)</unmanaged>
</member>
<member name="P:SharpDX.DXGI.Factory.Adapters">
<summary>
Return an array of <see cref="T:SharpDX.DXGI.Adapter"/> available from this factory.
</summary>
<unmanaged>HRESULT IDXGIFactory::EnumAdapters([In] unsigned int Adapter,[Out] IDXGIAdapter** ppAdapter)</unmanaged>
</member>
<member name="M:SharpDX.DXGI.Factory.GetAdapterCount">
<summary>
Return the number of available adapters from this factory.
</summary>
<returns>The number of adapters</returns>
<unmanaged>HRESULT IDXGIFactory::EnumAdapters([In] unsigned int Adapter,[Out] IDXGIAdapter** ppAdapter)</unmanaged>
</member>
<member name="M:SharpDX.DXGI.Factory.GetAdapter(System.Int32,SharpDX.DXGI.Adapter@)">
<summary>
<p>Enumerates the adapters (video cards).</p>
</summary>
<param name = "adapter"><dd> <p>The index of the adapter to enumerate.</p> </dd></param>
<param name = "adapterOut"><dd> <p>The address of a reference to an <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> interface at the position specified by the <em>Adapter</em> parameter. This parameter must not be <strong><c>null</c></strong>.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns <see cref = "!:NotFound"/> if the index is greater than or equal to the number of adapters in the local system, or <see cref = "!:InvalidCall"/> if <em>ppAdapter</em> parameter is <strong><c>null</c></strong>.</p></returns>
<remarks>
<p>When you create a factory, the factory enumerates the set of adapters that are available in the system. Therefore, if you change the adapters in a system, you must destroy and recreate the <strong><see cref = "T:SharpDX.DXGI.Factory"/></strong> object. The number of adapters in a system changes when you add or remove a display card, or dock or undock a laptop. </p><p>When the <strong>EnumAdapters</strong> method succeeds and fills the <em>ppAdapter</em> parameter with the address of the reference to the adapter interface, <strong>EnumAdapters</strong> increments the adapter interface's reference count. When you finish using the adapter interface, call the <strong>Release</strong> method to decrement the reference count before you destroy the reference.</p><p><strong>EnumAdapters</strong> first returns the adapter with the output on which the desktop primary is displayed. This adapter corresponds with an index of zero. <strong>EnumAdapters</strong> next returns other adapters with outputs. <strong>EnumAdapters</strong> finally returns adapters without outputs. </p>
</remarks>
<doc-id>bb174538</doc-id>
<unmanaged>HRESULT IDXGIFactory::EnumAdapters([In] unsigned int Adapter,[Out] IDXGIAdapter** ppAdapter)</unmanaged>
<unmanaged-short>IDXGIFactory::EnumAdapters</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory.MakeWindowAssociation(System.IntPtr,SharpDX.DXGI.WindowAssociationFlags)">
<summary>
<p>Allows DXGI to monitor an application's message queue for the alt-enter key sequence (which causes the application to switch from windowed to full screen or vice versa).</p>
</summary>
<param name = "windowHandle"><dd> <p>The handle of the window that is to be monitored. This parameter can be <strong><c>null</c></strong>; but only if the flags are also 0. </p> </dd></param>
<param name = "flags"><dd> <p>One or more of the following values:</p> <ul> <li>DXGI_MWA_NO_WINDOW_CHANGES - Prevent DXGI from monitoring an applications message queue; this makes DXGI unable to respond to mode changes.</li> <li>DXGI_MWA_NO_ALT_ENTER - Prevent DXGI from responding to an alt-enter sequence.</li> <li>DXGI_MWA_NO_PRINT_SCREEN - Prevent DXGI from responding to a print-screen key.</li> </ul> </dd></param>
<returns><p> <see cref = "!:InvalidCall"/> if <em>WindowHandle</em> is invalid, or E_OUTOFMEMORY.</p></returns>
<remarks>
<strong>Note</strong>??If you call this API in a Session 0 process, it returns <strong><see cref = "!:NotCurrentlyAvailable"/></strong>.?<p>The combination of <em>WindowHandle</em> and <em>Flags</em> informs DXGI to stop monitoring window messages for the previously-associated window.</p><p>If the application switches to full-screen mode, DXGI will choose a full-screen resolution to be the smallest supported resolution that is larger or the same size as the current back buffer size.</p><p>Applications can make some changes to make the transition from windowed to full screen more efficient. For example, on a WM_SIZE message, the application should release any outstanding swap-chain back buffers, call <strong>IDXGISwapChain::ResizeBuffers</strong>, then re-acquire the back buffers from the swap chain(s). This gives the swap chain(s) an opportunity to resize the back buffers, and/or recreate them to enable full-screen flipping operation. If the application does not perform this sequence, DXGI will still make the full-screen/windowed transition, but may be forced to use a stretch operation (since the back buffers may not be the correct size), which may be less efficient. Even if a stretch is not required, presentation may not be optimal because the back buffers might not be directly interchangeable with the front buffer. Thus, a call to <strong>ResizeBuffers</strong> on WM_SIZE is always recommended, since WM_SIZE is always sent during a fullscreen transition.</p><p>While windowed, the application can, if it chooses, restrict the size of its window's client area to sizes to which it is comfortable rendering. A fully flexible application would make no such restriction, but UI elements or other design considerations can, of course, make this flexibility untenable. If the application further chooses to restrict its window's client area to just those that match supported full-screen resolutions, the application can field WM_SIZING, then check against <strong>IDXGIOutput::FindClosestMatchingMode</strong>. If a matching mode is found, allow the resize. (The <see cref = "T:SharpDX.DXGI.Output"/> can be retrieved from <strong>IDXGISwapChain::GetContainingOutput</strong>. Absent subsequent changes to desktop topology, this will be the same output that will be chosen when alt-enter is fielded and fullscreen mode is begun for that swap chain.)</p><p>Applications that want to handle mode changes or Alt+Enter themselves should call <strong>MakeWindowAssociation</strong> with the DXGI_MWA_NO_WINDOW_CHANGES flag after swap chain creation. The <em>WindowHandle</em> argument, if non-<strong><c>null</c></strong>, specifies that the application message queues will not be handled by the DXGI runtime for all swap chains of a particular target <strong><see cref = "T:System.IntPtr"/></strong>. Calling <strong>MakeWindowAssociation</strong> with the DXGI_MWA_NO_WINDOW_CHANGES flag after swapchain creation ensures that DXGI will not interfere with application's handling of window mode changes or Alt+Enter.</p>
</remarks>
<doc-id>bb174540</doc-id>
<unmanaged>HRESULT IDXGIFactory::MakeWindowAssociation([In] HWND WindowHandle,[In] unsigned int Flags)</unmanaged>
<unmanaged-short>IDXGIFactory::MakeWindowAssociation</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory.GetWindowAssociation">
<summary>
<p>Get the window through which the user controls the transition to and from full screen.</p>
</summary>
<returns><dd> <p>A reference to a window handle.</p> </dd></returns>
<remarks>
<strong>Note</strong>??If you call this API in a Session 0 process, it returns <strong><see cref = "!:NotCurrentlyAvailable"/></strong>.?
</remarks>
<doc-id>bb174539</doc-id>
<unmanaged>HRESULT IDXGIFactory::GetWindowAssociation([Out] HWND* pWindowHandle)</unmanaged>
<unmanaged-short>IDXGIFactory::GetWindowAssociation</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory.CreateSwapChain(SharpDX.IUnknown,SharpDX.DXGI.SwapChainDescription@,SharpDX.DXGI.SwapChain)">
<summary>
<p>[Starting with Direct3D 11.1, we recommend not to use <strong>CreateSwapChain</strong> anymore to create a swap chain. Instead, use <strong>CreateSwapChainForHwnd</strong>, <strong>CreateSwapChainForCoreWindow</strong>, or <strong>CreateSwapChainForComposition</strong> depending on how you want to create the swap chain.]</p><p>Creates a swap chain.</p>
</summary>
<param name = "deviceRef">No documentation.</param>
<param name = "descRef">No documentation.</param>
<param name = "swapChainOut">No documentation.</param>
<returns><p> <see cref = "!:InvalidCall"/> if <em>pDesc</em> or <em>ppSwapChain</em> is <strong><c>null</c></strong>, DXGI_STATUS_OCCLUDED if you request full-screen mode and it is unavailable, or E_OUTOFMEMORY. Other error codes defined by the type of device passed in may also be returned.</p></returns>
<remarks>
<strong>Note</strong>??If you call this API in a Session 0 process, it returns <strong><see cref = "!:NotCurrentlyAvailable"/></strong>.?<p>If you attempt to create a swap chain in full-screen mode, and full-screen mode is unavailable, the swap chain will be created in windowed mode and DXGI_STATUS_OCCLUDED will be returned.</p><p>If the buffer width or the buffer height is zero, the sizes will be inferred from the output window size in the swap-chain description.</p><p>Because the target output can't be chosen explicitly when the swap chain is created, we recommend not to create a full-screen swap chain. This can reduce presentation performance if the swap chain size and the output window size do not match. Here are two ways to ensure that the sizes match:</p><ul> <li>Create a windowed swap chain and then set it full-screen using <strong>IDXGISwapChain::SetFullscreenState</strong>.</li> <li>Save a reference to the swap chain immediately after creation, and use it to get the output window size during a WM_SIZE event. Then resize the swap chain buffers (with <strong>IDXGISwapChain::ResizeBuffers</strong>) during the transition from windowed to full-screen.</li> </ul><p>If the swap chain is in full-screen mode, before you release it you must use <strong>SetFullscreenState</strong> to switch it to windowed mode. For more information about releasing a swap chain, see the "Destroying a Swap Chain" section of DXGI Overview.</p><p>After the runtime renders the initial frame in full screen, the runtime might unexpectedly exit full screen during a call to <strong>IDXGISwapChain::Present</strong>. To work around this issue, we recommend that you execute the following code right after you call <strong>CreateSwapChain</strong> to create a full-screen swap chain (<strong>Windowed</strong> member of <strong><see cref = "T:SharpDX.DXGI.SwapChainDescription"/></strong> set to <strong><see cref = "F:SharpDX.Result.False"/></strong>).
</p><pre> // Detect if newly created full-screen swap chain isn't actually full screen.
<see cref = "T:SharpDX.DXGI.Output"/>* pTarget; <see cref = "T:SharpDX.Mathematics.Interop.RawBool"/> bFullscreen;
if (SUCCEEDED(pSwapChain->GetFullscreenState(&bFullscreen, &pTarget)))
{ pTarget->Release();
}
else bFullscreen = <see cref = "F:SharpDX.Result.False"/>;
// If not full screen, enable full screen again.
if (!bFullscreen)
{ ShowWindow(hWnd, SW_MINIMIZE); ShowWindow(hWnd, SW_RESTORE); pSwapChain->SetFullscreenState(TRUE, <c>null</c>);
}
</pre><p>You can specify <strong><see cref = "T:SharpDX.DXGI.SwapEffect"/></strong> and <strong><see cref = "T:SharpDX.DXGI.SwapChainFlags"/></strong> values in the swap-chain description that <em>pDesc</em> points to. These values allow you to use features like flip-model presentation and content protection by using pre-Windows?8 APIs.</p><p>However, to use stereo presentation and to change resize behavior for the flip model, applications must use the <strong>IDXGIFactory2::CreateSwapChainForHwnd</strong> method. Otherwise, the back-buffer contents implicitly scale to fit the presentation target size; that is, you can't turn off scaling.</p>
</remarks>
<doc-id>bb174537</doc-id>
<unmanaged>HRESULT IDXGIFactory::CreateSwapChain([In] IUnknown* pDevice,[In] DXGI_SWAP_CHAIN_DESC* pDesc,[Out, Fast] IDXGISwapChain** ppSwapChain)</unmanaged>
<unmanaged-short>IDXGIFactory::CreateSwapChain</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory.CreateSoftwareAdapter(System.IntPtr)">
<summary>
<p>Create an adapter interface that represents a software adapter.</p>
</summary>
<param name = "module"><dd> <p>Handle to the software adapter's dll. HMODULE can be obtained with <strong>GetModuleHandle</strong> or <strong>LoadLibrary</strong>.</p> </dd></param>
<returns><dd> <p>Address of a reference to an adapter (see <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong>).</p> </dd></returns>
<remarks>
<p>A software adapter is a DLL that implements the entirety of a device driver interface, plus emulation, if necessary, of kernel-mode graphics components for Windows. Details on implementing a software adapter can be found in the Windows Vista Driver Development Kit. This is a very complex development task, and is not recommended for general readers.</p><p>Calling this method will increment the module's reference count by one. The reference count can be decremented by calling <strong>FreeLibrary</strong>.</p><p>The typical calling scenario is to call <strong>LoadLibrary</strong>, pass the handle to <strong>CreateSoftwareAdapter</strong>, then immediately call <strong>FreeLibrary</strong> on the DLL and forget the DLL's <strong>HMODULE</strong>. Since the software adapter calls <strong>FreeLibrary</strong> when it is destroyed, the lifetime of the DLL will now be owned by the adapter, and the application is free of any further consideration of its lifetime.</p>
</remarks>
<doc-id>bb174536</doc-id>
<unmanaged>HRESULT IDXGIFactory::CreateSoftwareAdapter([In] HINSTANCE Module,[Out] IDXGIAdapter** ppAdapter)</unmanaged>
<unmanaged-short>IDXGIFactory::CreateSoftwareAdapter</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory1.#ctor">
<summary>
Default Constructor for Factory1.
</summary>
</member>
<member name="M:SharpDX.DXGI.Factory1.GetAdapter1(System.Int32)">
<summary>
Gets both adapters (video cards) with or without outputs.
</summary>
<param name="index"><para>The index of the adapter to enumerate.</para></param>
<returns>a reference to an <see cref="T:SharpDX.DXGI.Adapter1"/> interface at the position specified by the Adapter parameter</returns>
<remarks>
This method is not supported by DXGI 1.0, which shipped in Windows?Vista and Windows Server?2008. DXGI 1.1 support is required, which is available on Windows?7, Windows Server?2008?R2, and as an update to Windows?Vista with Service Pack?2 (SP2) (KB 971644) and Windows Server?2008 (KB 971512).When you create a factory, the factory enumerates the set of adapters that are available in the system. Therefore, if you change the adapters in a system, you must destroy and recreate the <see cref="T:SharpDX.DXGI.Factory1"/> object. The number of adapters in a system changes when you add or remove a display card, or dock or undock a laptop.When the EnumAdapters1 method succeeds and fills the ppAdapter parameter with the address of the reference to the adapter interface, EnumAdapters1 increments the adapter interface's reference count. When you finish using the adapter interface, call the Release method to decrement the reference count before you destroy the reference.EnumAdapters1 first returns the local adapter with the output on which the desktop primary is displayed. This adapter corresponds with an index of zero. EnumAdapters1 next returns other adapters with outputs. EnumAdapters1 finally returns adapters without outputs.
</remarks>
<unmanaged>HRESULT IDXGIFactory1::EnumAdapters1([In] unsigned int Adapter,[Out] IDXGIAdapter1** ppAdapter)</unmanaged>
</member>
<member name="P:SharpDX.DXGI.Factory1.Adapters1">
<summary>
Return an array of <see cref="T:SharpDX.DXGI.Adapter1"/> available from this factory.
</summary>
<unmanaged>HRESULT IDXGIFactory1::EnumAdapters1([In] unsigned int Adapter,[Out] IDXGIAdapter1** ppAdapter)</unmanaged>
</member>
<member name="M:SharpDX.DXGI.Factory1.GetAdapterCount1">
<summary>
Return the number of available adapters from this factory.
</summary>
<returns>The number of adapters</returns>
<unmanaged>HRESULT IDXGIFactory1::EnumAdapters1([In] unsigned int Adapter,[Out] IDXGIAdapter1** ppAdapter)</unmanaged>
</member>
<member name="P:SharpDX.DXGI.Factory1.IsCurrent">
<summary>
<p>Informs an application of the possible need to re-enumerate adapters.</p>
</summary>
<remarks>
<p>This method is not supported by DXGI 1.0, which shipped in Windows?Vista and Windows Server?2008. DXGI 1.1 support is required, which is available on Windows?7, Windows Server?2008?R2, and as an update to Windows?Vista with Service Pack?2 (SP2) (KB 971644) and Windows Server?2008 (KB 971512).</p>
</remarks>
<doc-id>ff471337</doc-id>
<unmanaged>IsCurrent</unmanaged>
<unmanaged-short>IsCurrent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory1.GetAdapter1(System.Int32,SharpDX.DXGI.Adapter1@)">
<summary>
<p>Enumerates both adapters (video cards) with or without outputs.</p>
</summary>
<param name = "adapter"><dd> <p>The index of the adapter to enumerate.</p> </dd></param>
<param name = "adapterOut"><dd> <p>The address of a reference to an <strong><see cref = "T:SharpDX.DXGI.Adapter1"/></strong> interface at the position specified by the <em>Adapter</em> parameter. This parameter must not be <strong><c>null</c></strong>.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; otherwise, returns <see cref = "!:NotFound"/> if the index is greater than or equal to the number of adapters in the local system, or <see cref = "!:InvalidCall"/> if <em>ppAdapter</em> parameter is <strong><c>null</c></strong>.</p></returns>
<remarks>
<p>This method is not supported by DXGI 1.0, which shipped in Windows?Vista and Windows Server?2008. DXGI 1.1 support is required, which is available on Windows?7, Windows Server?2008?R2, and as an update to Windows?Vista with Service Pack?2 (SP2) (KB 971644) and Windows Server?2008 (KB 971512).</p><p>When you create a factory, the factory enumerates the set of adapters that are available in the system. Therefore, if you change the adapters in a system, you must destroy and recreate the <strong><see cref = "T:SharpDX.DXGI.Factory1"/></strong> object. The number of adapters in a system changes when you add or remove a display card, or dock or undock a laptop. </p><p>When the <strong>EnumAdapters1</strong> method succeeds and fills the <em>ppAdapter</em> parameter with the address of the reference to the adapter interface, <strong>EnumAdapters1</strong> increments the adapter interface's reference count. When you finish using the adapter interface, call the <strong>Release</strong> method to decrement the reference count before you destroy the reference.</p><p><strong>EnumAdapters1</strong> first returns the adapter with the output on which the desktop primary is displayed. This adapter corresponds with an index of zero. <strong>EnumAdapters1</strong> next returns other adapters with outputs. <strong>EnumAdapters1</strong> finally returns adapters without outputs.</p>
</remarks>
<doc-id>ff471336</doc-id>
<unmanaged>HRESULT IDXGIFactory1::EnumAdapters1([In] unsigned int Adapter,[Out] IDXGIAdapter1** ppAdapter)</unmanaged>
<unmanaged-short>IDXGIFactory1::EnumAdapters1</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory1.IsCurrent_">
<summary>
<p>Informs an application of the possible need to re-enumerate adapters.</p>
</summary>
<returns><p><strong><see cref = "F:SharpDX.Result.False"/></strong>, if a new adapter is becoming available or the current adapter is going away. <strong>TRUE</strong>, no adapter changes.</p><p><strong>IsCurrent</strong> returns <strong><see cref = "F:SharpDX.Result.False"/></strong> to inform the calling application to re-enumerate adapters.</p></returns>
<remarks>
<p>This method is not supported by DXGI 1.0, which shipped in Windows?Vista and Windows Server?2008. DXGI 1.1 support is required, which is available on Windows?7, Windows Server?2008?R2, and as an update to Windows?Vista with Service Pack?2 (SP2) (KB 971644) and Windows Server?2008 (KB 971512).</p>
</remarks>
<doc-id>ff471337</doc-id>
<unmanaged>BOOL IDXGIFactory1::IsCurrent()</unmanaged>
<unmanaged-short>IDXGIFactory1::IsCurrent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.#ctor(System.Boolean)">
<summary>
Initializes a new instance of <see cref="T:SharpDX.DXGI.Factory2"/> class.
</summary>
<param name="debug">True - to set the DXGI_CREATE_FACTORY_DEBUG flag.</param>
</member>
<member name="P:SharpDX.DXGI.Factory2.IsWindowedStereoEnabled">
<summary>
<p>Determines whether to use stereo mode.</p>
</summary>
<remarks>
<p>We recommend that windowed applications call <strong>IsWindowedStereoEnabled</strong> before they attempt to use stereo. <strong>IsWindowedStereoEnabled</strong> returns <strong>TRUE</strong> if both of the following items are true:</p><ul> <li>All adapters in the computer have drivers that are capable of stereo. This only means that the driver is implemented to the Windows Display Driver Model (WDDM) for Windows?8 (WDDM 1.2). However, the adapter does not necessarily have to be able to scan out stereo.</li> <li>The current desktop mode (desktop modes are mono) and system policy and hardware are configured so that the Desktop Window Manager (DWM) performs stereo composition on at least one adapter output.</li> </ul><p>The creation of a windowed stereo swap chain succeeds if the first requirement is met. However, if the adapter can't scan out stereo, the output on that adapter is reduced to mono.</p><p>The Direct3D 11.1 Simple Stereo 3D Sample shows how to add a stereoscopic 3D effect and how to respond to system stereo changes.</p>
</remarks>
<doc-id>hh404561</doc-id>
<unmanaged>IsWindowedStereoEnabled</unmanaged>
<unmanaged-short>IsWindowedStereoEnabled</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.IsWindowedStereoEnabled_">
<summary>
<p>Determines whether to use stereo mode.</p>
</summary>
<returns><p>Indicates whether to use stereo mode. <strong>TRUE</strong> indicates that you can use stereo mode; otherwise, <strong><see cref = "F:SharpDX.Result.False"/></strong>.</p><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>IsWindowedStereoEnabled</strong> always returns <see cref = "F:SharpDX.Result.False"/> because stereoscopic 3D display behavior isn?t available with the Platform Update for Windows?7. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<p>We recommend that windowed applications call <strong>IsWindowedStereoEnabled</strong> before they attempt to use stereo. <strong>IsWindowedStereoEnabled</strong> returns <strong>TRUE</strong> if both of the following items are true:</p><ul> <li>All adapters in the computer have drivers that are capable of stereo. This only means that the driver is implemented to the Windows Display Driver Model (WDDM) for Windows?8 (WDDM 1.2). However, the adapter does not necessarily have to be able to scan out stereo.</li> <li>The current desktop mode (desktop modes are mono) and system policy and hardware are configured so that the Desktop Window Manager (DWM) performs stereo composition on at least one adapter output.</li> </ul><p>The creation of a windowed stereo swap chain succeeds if the first requirement is met. However, if the adapter can't scan out stereo, the output on that adapter is reduced to mono.</p><p>The Direct3D 11.1 Simple Stereo 3D Sample shows how to add a stereoscopic 3D effect and how to respond to system stereo changes.</p>
</remarks>
<doc-id>hh404561</doc-id>
<unmanaged>BOOL IDXGIFactory2::IsWindowedStereoEnabled()</unmanaged>
<unmanaged-short>IDXGIFactory2::IsWindowedStereoEnabled</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.CreateSwapChainForHwnd(SharpDX.IUnknown,System.IntPtr,SharpDX.DXGI.SwapChainDescription1@,System.Nullable{SharpDX.DXGI.SwapChainFullScreenDescription},SharpDX.DXGI.Output,SharpDX.DXGI.SwapChain1)">
<summary>
<p>Creates a swap chain that is associated with an <strong><see cref = "T:System.IntPtr"/></strong> handle to the output window for the swap chain.</p>
</summary>
<param name = "deviceRef">No documentation.</param>
<param name = "hWnd">No documentation.</param>
<param name = "descRef">No documentation.</param>
<param name = "fullscreenDescRef">No documentation.</param>
<param name = "restrictToOutputRef">No documentation.</param>
<param name = "swapChainOut">No documentation.</param>
<returns><p><strong>CreateSwapChainForHwnd</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully created a swap chain.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li> <see cref = "!:InvalidCall"/> if the calling application provided invalid data, for example, if <em>pDesc</em> or <em>ppSwapChain</em> is <strong><c>null</c></strong>.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic that are defined by the type of device that you pass to <em>pDevice</em>.</li> </ul><p><strong>Platform Update for Windows?7:??</strong><strong>DXGI_SCALING_NONE</strong> is not supported on Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed and causes <strong>CreateSwapChainForHwnd</strong> to return <see cref = "!:InvalidCall"/> when called. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<strong>Note</strong>??Do not use this method in Windows Store apps. Instead, use <strong>IDXGIFactory2::CreateSwapChainForCoreWindow</strong>.?<p>If you specify the width, height, or both (<strong>Width</strong> and <strong>Height</strong> members of <strong><see cref = "T:SharpDX.DXGI.SwapChainDescription1"/></strong> that <em>pDesc</em> points to) of the swap chain as zero, the runtime obtains the size from the output window that the <em>hWnd</em> parameter specifies. You can subsequently call the <strong>IDXGISwapChain1::GetDesc1</strong> method to retrieve the assigned width or height value.</p><p>Because you can associate only one flip presentation model swap chain at a time with an <strong><see cref = "T:System.IntPtr"/></strong>, the Microsoft Direct3D?11 policy of deferring the destruction of objects can cause problems if you attempt to destroy a flip presentation model swap chain and replace it with another swap chain. For more info about this situation, see <strong>Deferred Destruction Issues with Flip Presentation Swap Chains</strong>.</p><p>For info about how to choose a format for the swap chain's back buffer, see Converting data for the color space.</p>
</remarks>
<doc-id>hh404557</doc-id>
<unmanaged>HRESULT IDXGIFactory2::CreateSwapChainForHwnd([In] IUnknown* pDevice,[In] HWND hWnd,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pFullscreenDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</unmanaged>
<unmanaged-short>IDXGIFactory2::CreateSwapChainForHwnd</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.CreateSwapChainForCoreWindow(SharpDX.IUnknown,SharpDX.IUnknown,SharpDX.DXGI.SwapChainDescription1@,SharpDX.DXGI.Output,SharpDX.DXGI.SwapChain1)">
<summary>
<p>Creates a swap chain that is associated with the <strong>CoreWindow</strong> object for the output window for the swap chain.</p>
</summary>
<param name = "deviceRef">No documentation.</param>
<param name = "windowRef">No documentation.</param>
<param name = "descRef">No documentation.</param>
<param name = "restrictToOutputRef">No documentation.</param>
<param name = "swapChainOut">No documentation.</param>
<returns><p><strong>CreateSwapChainForCoreWindow</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully created a swap chain.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li> <see cref = "!:InvalidCall"/> if the calling application provided invalid data, for example, if <em>pDesc</em> or <em>ppSwapChain</em> is <strong><c>null</c></strong>.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic that are defined by the type of device that you pass to <em>pDevice</em>.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>CreateSwapChainForCoreWindow</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<strong>Note</strong>??Use this method in Windows Store apps rather than <strong>IDXGIFactory2::CreateSwapChainForHwnd</strong>.?<p>If you specify the width, height, or both (<strong>Width</strong> and <strong>Height</strong> members of <strong><see cref = "T:SharpDX.DXGI.SwapChainDescription1"/></strong> that <em>pDesc</em> points to) of the swap chain as zero, the runtime obtains the size from the output window that the <em>pWindow</em> parameter specifies. You can subsequently call the <strong>IDXGISwapChain1::GetDesc1</strong> method to retrieve the assigned width or height value.</p><p>Because you can associate only one flip presentation model swap chain (per layer) at a time with a <strong>CoreWindow</strong>, the Microsoft Direct3D?11 policy of deferring the destruction of objects can cause problems if you attempt to destroy a flip presentation model swap chain and replace it with another swap chain. For more info about this situation, see <strong>Deferred Destruction Issues with Flip Presentation Swap Chains</strong>.</p><p>For info about how to choose a format for the swap chain's back buffer, see Converting data for the color space.</p>
</remarks>
<doc-id>hh404559</doc-id>
<unmanaged>HRESULT IDXGIFactory2::CreateSwapChainForCoreWindow([In] IUnknown* pDevice,[In] IUnknown* pWindow,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</unmanaged>
<unmanaged-short>IDXGIFactory2::CreateSwapChainForCoreWindow</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.GetSharedResourceAdapterLuid(System.IntPtr,System.Int64@)">
<summary>
<p>Identifies the adapter on which a shared resource object was created.</p>
</summary>
<param name = "hResource"><dd> <p>A handle to a shared resource object. The <strong>IDXGIResource1::CreateSharedHandle</strong> method returns this handle.</p> </dd></param>
<param name = "luidRef"><dd> <p>A reference to a variable that receives a locally unique identifier (<strong><see cref = "T:System.Int64"/></strong>) value that identifies the adapter. <strong><see cref = "T:System.Int64"/></strong> is defined in Dxgi.h. An <strong><see cref = "T:System.Int64"/></strong> is a 64-bit value that is guaranteed to be unique only on the operating system on which it was generated. The uniqueness of an <strong><see cref = "T:System.Int64"/></strong> is guaranteed only until the operating system is restarted.</p> </dd></param>
<returns><p><strong>GetSharedResourceAdapterLuid</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it identified the adapter.</li> <li><see cref = "!:InvalidCall"/> if <em>hResource</em> is invalid.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>GetSharedResourceAdapterLuid</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<p>You cannot share resources across adapters. Therefore, you cannot open a shared resource on an adapter other than the adapter on which the resource was created. Call <strong>GetSharedResourceAdapterLuid</strong> before you open a shared resource to ensure that the resource was created on the appropriate adapter. To open a shared resource, call the <strong>ID3D11Device1::OpenSharedResource1</strong> or <strong>ID3D11Device1::OpenSharedResourceByName</strong> method.</p>
</remarks>
<doc-id>hh404560</doc-id>
<unmanaged>HRESULT IDXGIFactory2::GetSharedResourceAdapterLuid([In] void* hResource,[Out] LUID* pLuid)</unmanaged>
<unmanaged-short>IDXGIFactory2::GetSharedResourceAdapterLuid</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.RegisterStereoStatusWindow(System.IntPtr,System.Int32,System.Int32@)">
<summary>
<p>Registers an application window to receive notification messages of changes of stereo status.</p>
</summary>
<param name = "windowHandle"><dd> <p>The handle of the window to send a notification message to when stereo status change occurs.</p> </dd></param>
<param name = "wMsg"><dd> <p>Identifies the notification message to send. </p> </dd></param>
<param name = "dwCookieRef"><dd> <p>A reference to a key value that an application can pass to the <strong>IDXGIFactory2::UnregisterStereoStatus</strong> method to unregister the notification message that <em>wMsg</em> specifies.</p> </dd></param>
<returns><p><strong>RegisterStereoStatusWindow</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully registered the window.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>RegisterStereoStatusWindow</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<doc-id>hh404587</doc-id>
<unmanaged>HRESULT IDXGIFactory2::RegisterStereoStatusWindow([In] HWND WindowHandle,[In] unsigned int wMsg,[Out] DWORD* pdwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::RegisterStereoStatusWindow</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.RegisterStereoStatusEvent(System.IntPtr,System.Int32@)">
<summary>
<p>Registers to receive notification of changes in stereo status by using event signaling.</p>
</summary>
<param name = "hEvent"><dd> <p>A handle to the event object that the operating system sets when notification of stereo status change occurs. The <strong>CreateEvent</strong> or <strong>OpenEvent</strong> function returns this handle. </p> </dd></param>
<param name = "dwCookieRef"><dd> <p>A reference to a key value that an application can pass to the <strong>IDXGIFactory2::UnregisterStereoStatus</strong> method to unregister the notification event that <em>hEvent</em> specifies.</p> </dd></param>
<returns><p><strong>RegisterStereoStatusEvent</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully registered the event.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>RegisterStereoStatusEvent</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<doc-id>hh404584</doc-id>
<unmanaged>HRESULT IDXGIFactory2::RegisterStereoStatusEvent([In] void* hEvent,[Out] DWORD* pdwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::RegisterStereoStatusEvent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.UnregisterStereoStatus(System.Int32)">
<summary>
<p>Unregisters a window or an event to stop it from receiving notification when stereo status changes.</p>
</summary>
<param name = "dwCookie"><dd> <p>A key value for the window or event to unregister. The <strong>IDXGIFactory2::RegisterStereoStatusWindow</strong> or <strong>IDXGIFactory2::RegisterStereoStatusEvent</strong> method returns this value. </p> </dd></param>
<remarks>
<p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>UnregisterStereoStatus</strong> has no effect. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p>
</remarks>
<doc-id>hh404593</doc-id>
<unmanaged>void IDXGIFactory2::UnregisterStereoStatus([In] DWORD dwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::UnregisterStereoStatus</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.RegisterOcclusionStatusWindow(System.IntPtr,System.Int32,System.Int32@)">
<summary>
<p>Registers an application window to receive notification messages of changes of occlusion status.</p>
</summary>
<param name = "windowHandle"><dd> <p>The handle of the window to send a notification message to when occlusion status change occurs.</p> </dd></param>
<param name = "wMsg"><dd> <p>Identifies the notification message to send. </p> </dd></param>
<param name = "dwCookieRef"><dd> <p>A reference to a key value that an application can pass to the <strong>IDXGIFactory2::UnregisterOcclusionStatus</strong> method to unregister the notification message that <em>wMsg</em> specifies.</p> </dd></param>
<returns><p><strong>RegisterOcclusionStatusWindow</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully registered the window.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li> <see cref = "!:InvalidCall"/> if <em>WindowHandle</em> is not a valid window handle or not the window handle that the current process owns.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>RegisterOcclusionStatusWindow</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<p>Apps choose the Windows message that Windows sends when occlusion status changes.</p>
</remarks>
<doc-id>hh404581</doc-id>
<unmanaged>HRESULT IDXGIFactory2::RegisterOcclusionStatusWindow([In] HWND WindowHandle,[In] unsigned int wMsg,[Out] DWORD* pdwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::RegisterOcclusionStatusWindow</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.RegisterOcclusionStatusEvent(System.IntPtr,System.Int32@)">
<summary>
<p>Registers to receive notification of changes in occlusion status by using event signaling.</p>
</summary>
<param name = "hEvent"><dd> <p>A handle to the event object that the operating system sets when notification of occlusion status change occurs. The <strong>CreateEvent</strong> or <strong>OpenEvent</strong> function returns this handle.</p> </dd></param>
<param name = "dwCookieRef"><dd> <p>A reference to a key value that an application can pass to the <strong>IDXGIFactory2::UnregisterOcclusionStatus</strong> method to unregister the notification event that <em>hEvent</em> specifies.</p> </dd></param>
<returns><p><strong>RegisterOcclusionStatusEvent</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if the method successfully registered the event.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li> <see cref = "!:InvalidCall"/> if <em>hEvent</em> is not a valid handle or not an event handle. </li> <li>Possibly other error codes that are described in the DXGI_ERROR topic.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>RegisterOcclusionStatusEvent</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<p>If you call <strong>RegisterOcclusionStatusEvent</strong> multiple times with the same event handle, <strong>RegisterOcclusionStatusEvent</strong> fails with <see cref = "!:InvalidCall"/>.</p><p>If you call <strong>RegisterOcclusionStatusEvent</strong> multiple times with the different event handles, <strong>RegisterOcclusionStatusEvent</strong> properly registers the events.</p>
</remarks>
<doc-id>hh404578</doc-id>
<unmanaged>HRESULT IDXGIFactory2::RegisterOcclusionStatusEvent([In] void* hEvent,[Out] DWORD* pdwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::RegisterOcclusionStatusEvent</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.UnregisterOcclusionStatus(System.Int32)">
<summary>
<p>Unregisters a window or an event to stop it from receiving notification when occlusion status changes.</p>
</summary>
<param name = "dwCookie"><dd> <p>A key value for the window or event to unregister. The <strong>IDXGIFactory2::RegisterOcclusionStatusWindow</strong> or <strong>IDXGIFactory2::RegisterOcclusionStatusEvent</strong> method returns this value. </p> </dd></param>
<remarks>
<p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>UnregisterOcclusionStatus</strong> has no effect. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p>
</remarks>
<doc-id>hh404590</doc-id>
<unmanaged>void IDXGIFactory2::UnregisterOcclusionStatus([In] DWORD dwCookie)</unmanaged>
<unmanaged-short>IDXGIFactory2::UnregisterOcclusionStatus</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory2.CreateSwapChainForComposition(SharpDX.IUnknown,SharpDX.DXGI.SwapChainDescription1@,SharpDX.DXGI.Output,SharpDX.DXGI.SwapChain1)">
<summary>
<p>Creates a swap chain that you can use to send Direct3D content into the DirectComposition API or the <strong>Windows.UI.Xaml</strong> framework to compose in a window.</p>
</summary>
<param name = "deviceRef">No documentation.</param>
<param name = "descRef">No documentation.</param>
<param name = "restrictToOutputRef">No documentation.</param>
<param name = "swapChainOut">No documentation.</param>
<returns><p><strong>CreateSwapChainForComposition</strong> returns: </p><ul> <li><see cref = "F:SharpDX.Result.Ok"/> if it successfully created a swap chain.</li> <li>E_OUTOFMEMORY if memory is unavailable to complete the operation.</li> <li> <see cref = "!:InvalidCall"/> if the calling application provided invalid data, for example, if <em>pDesc</em> or <em>ppSwapChain</em> is <strong><c>null</c></strong>.</li> <li>Possibly other error codes that are described in the DXGI_ERROR topic that are defined by the type of device that you pass to <em>pDevice</em>.</li> </ul><p><strong>Platform Update for Windows?7:??</strong>On Windows?7 or Windows Server?2008?R2 with the Platform Update for Windows?7 installed, <strong>CreateSwapChainForComposition</strong> fails with E_NOTIMPL. For more info about the Platform Update for Windows?7, see Platform Update for Windows 7. </p></returns>
<remarks>
<p>You can use composition swap chains with either DirectComposition?s <strong><see cref = "!:SharpDX.DirectComposition.Visual"/></strong> interface or XAML?s <strong>SwapChainBackgroundPanel</strong> class. For DirectComposition, you can call the <strong>IDCompositionVisual::SetContent</strong> method to set the swap chain as the content of a visual object, which then allows you to bind the swap chain to the visual tree. For XAML, the <strong>SwapChainBackgroundPanel</strong> class exposes a classic COM interface <strong><see cref = "T:SharpDX.DXGI.ISwapChainBackgroundPanelNative"/></strong>. You can use the <strong>ISwapChainBackgroundPanelNative::SetSwapChain</strong> method to bind to the XAML UI graph. For info about how to use composition swap chains with XAML?s <strong>SwapChainBackgroundPanel</strong> class, see DirectX and XAML interop.</p><p>The <strong>IDXGISwapChain::SetFullscreenState</strong>, <strong>IDXGISwapChain::ResizeTarget</strong>, <strong>IDXGISwapChain::GetContainingOutput</strong>, <strong>IDXGISwapChain1::GetHwnd</strong>, and <strong>IDXGISwapChain::GetCoreWindow</strong> methods aren't valid on this type of swap chain. If you call any of these methods on this type of swap chain, they fail.</p><p>For info about how to choose a format for the swap chain's back buffer, see Converting data for the color space.</p>
</remarks>
<doc-id>hh404558</doc-id>
<unmanaged>HRESULT IDXGIFactory2::CreateSwapChainForComposition([In] IUnknown* pDevice,[In] const DXGI_SWAP_CHAIN_DESC1* pDesc,[In, Optional] IDXGIOutput* pRestrictToOutput,[Out, Fast] IDXGISwapChain1** ppSwapChain)</unmanaged>
<unmanaged-short>IDXGIFactory2::CreateSwapChainForComposition</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory4.#ctor">
<summary>
Initializes a new instance of <see cref="T:SharpDX.DXGI.Factory4"/> class.
</summary>
</member>
<member name="M:SharpDX.DXGI.Factory4.GetWarpAdapter">
<summary>
Gets the default warp adapter.
</summary>
<returns>The warp adapter.</returns>
</member>
<member name="M:SharpDX.DXGI.Factory4.GetAdapterByLuid(System.Int64)">
<summary>
Gets the adapter for the specified LUID.
</summary>
<param name="adapterLuid">A unique value that identifies the adapter.</param>
<returns>The adapter.</returns>
</member>
<member name="M:SharpDX.DXGI.Factory4.EnumAdapterByLuid(System.Int64,System.Guid,System.IntPtr@)">
<summary>
<p> Outputs the <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> for the specified <see cref = "T:System.Int64"/>. </p>
</summary>
<param name = "adapterLuid">No documentation.</param>
<param name = "riid">No documentation.</param>
<param name = "vAdapterOut">No documentation.</param>
<returns><p> Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR. See also Direct3D 12 Return Codes. </p></returns>
<remarks>
<p> For Direct3D 12, it's no longer possible to backtrack from a device to the <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> that was used to create it. <strong>IDXGIFactory4::EnumAdapterByLuid</strong> enables an app to retrieve information about the adapter where a D3D12 device was created. <strong>IDXGIFactory4::EnumAdapterByLuid</strong> is designed to be paired with <strong>ID3D12Device::GetAdapterLuid</strong>. For more information, see DXGI 1.4 Improvements. </p>
</remarks>
<doc-id>mt427786</doc-id>
<unmanaged>HRESULT IDXGIFactory4::EnumAdapterByLuid([In] LUID AdapterLuid,[In] const GUID& riid,[Out] void** ppvAdapter)</unmanaged>
<unmanaged-short>IDXGIFactory4::EnumAdapterByLuid</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.Factory4.EnumWarpAdapter(System.Guid,System.IntPtr@)">
<summary>
<p> Provides an adapter which can be provided to D3D12CreateDevice to use the WARP renderer. </p>
</summary>
<param name = "riid"><dd> <p> The globally unique identifier (<see cref = "T:System.Guid"/>) of the <strong><see cref = "T:SharpDX.DXGI.Factory4"/></strong> object referenced by the <em>ppvAdapter</em> parameter. </p> </dd></param>
<param name = "vAdapterOut"><dd> <p> The address of an <strong><see cref = "T:SharpDX.DXGI.Adapter"/></strong> interface reference to the adapter. This parameter must not be <c>null</c>. </p> </dd></param>
<returns><p> Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR. See also Direct3D 12 Return Codes. </p></returns>
<remarks>
<p> For more information, see DXGI 1.4 Improvements. </p>
</remarks>
<doc-id>mt427787</doc-id>
<unmanaged>HRESULT IDXGIFactory4::EnumWarpAdapter([In] const GUID& riid,[Out] void** ppvAdapter)</unmanaged>
<unmanaged-short>IDXGIFactory4::EnumWarpAdapter</unmanaged-short>
</member>
<member name="T:SharpDX.DXGI.FormatHelper">
<summary>
Helper to use with <see cref="T:SharpDX.DXGI.Format"/>.
</summary>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.SizeOfInBytes(SharpDX.DXGI.Format)">
<summary>
Calculates the size of a <see cref="T:SharpDX.DXGI.Format"/> in bytes. Can be 0 for compressed format (as they are less than 1 byte)
</summary>
<param name="format">The DXGI format.</param>
<returns>size of in bytes</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.SizeOfInBits(SharpDX.DXGI.Format)">
<summary>
Calculates the size of a <see cref="T:SharpDX.DXGI.Format"/> in bits.
</summary>
<param name="format">The DXGI format.</param>
<returns>size of in bits</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsValid(SharpDX.DXGI.Format)">
<summary>
Returns true if the <see cref="T:SharpDX.DXGI.Format"/> is valid.
</summary>
<param name="format">A format to validate</param>
<returns>True if the <see cref="T:SharpDX.DXGI.Format"/> is valid.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsCompressed(SharpDX.DXGI.Format)">
<summary>
Returns true if the <see cref="T:SharpDX.DXGI.Format"/> is a compressed format.
</summary>
<param name="format">The format to check for compressed.</param>
<returns>True if the <see cref="T:SharpDX.DXGI.Format"/> is a compressed format</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsPacked(SharpDX.DXGI.Format)">
<summary>
Determines whether the specified <see cref="T:SharpDX.DXGI.Format"/> is packed.
</summary>
<param name="format">The DXGI Format.</param>
<returns><c>true</c> if the specified <see cref="T:SharpDX.DXGI.Format"/> is packed; otherwise, <c>false</c>.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsVideo(SharpDX.DXGI.Format)">
<summary>
Determines whether the specified <see cref="T:SharpDX.DXGI.Format"/> is video.
</summary>
<param name="format">The <see cref="T:SharpDX.DXGI.Format"/>.</param>
<returns><c>true</c> if the specified <see cref="T:SharpDX.DXGI.Format"/> is video; otherwise, <c>false</c>.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsSRgb(SharpDX.DXGI.Format)">
<summary>
Determines whether the specified <see cref="T:SharpDX.DXGI.Format"/> is a SRGB format.
</summary>
<param name="format">The <see cref="T:SharpDX.DXGI.Format"/>.</param>
<returns><c>true</c> if the specified <see cref="T:SharpDX.DXGI.Format"/> is a SRGB format; otherwise, <c>false</c>.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.IsTypeless(SharpDX.DXGI.Format)">
<summary>
Determines whether the specified <see cref="T:SharpDX.DXGI.Format"/> is typeless.
</summary>
<param name="format">The <see cref="T:SharpDX.DXGI.Format"/>.</param>
<returns><c>true</c> if the specified <see cref="T:SharpDX.DXGI.Format"/> is typeless; otherwise, <c>false</c>.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.ComputeScanlineCount(SharpDX.DXGI.Format,System.Int32)">
<summary>
Computes the scanline count (number of scanlines).
</summary>
<param name="format">The <see cref="T:SharpDX.DXGI.Format"/>.</param>
<param name="height">The height.</param>
<returns>The scanline count.</returns>
</member>
<member name="M:SharpDX.DXGI.FormatHelper.#cctor">
<summary>
Static initializer to speed up size calculation (not sure the JIT is enough "smart" for this kind of thing).
</summary>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.TryCreate">
<summary>
If the DXGI debug layer is installed (e.g. on developer machines), creates the DXGI InfoQueue object.
Otherwise, returns null.
</summary>
<remarks>
Currently doesn't work for Windows Store (aka UWP) apps
</remarks>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.SetMessageCountLimit(System.Guid,System.Int64)">
<summary>
<p>Sets the maximum number of messages that can be added to the message queue.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that sets the limit on the number of messages.</p> </dd></param>
<param name = "messageCountLimit"><dd> <p>The maximum number of messages that can be added to the queue. ?1 means no limit.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR.</p></returns>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780391</doc-id>
<unmanaged>HRESULT IDXGIInfoQueue::SetMessageCountLimit([In] GUID Producer,[In] unsigned longlong MessageCountLimit)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::SetMessageCountLimit</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.ClearStoredMessages(System.Guid)">
<summary>
<p>Clears all messages from the message queue.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that clears the messages.</p> </dd></param>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780362</doc-id>
<unmanaged>void IDXGIInfoQueue::ClearStoredMessages([In] GUID Producer)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::ClearStoredMessages</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetMessage(System.Guid,System.Int64,SharpDX.DXGI.InformationQueueMessage[],SharpDX.PointerSize@)">
<summary>
<p>Gets a message from the message queue.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the message.</p> </dd></param>
<param name = "messageIndex"><dd> <p>An index into the message queue after an optional retrieval filter has been applied. This can be between 0 and the number of messages in the message queue that pass through the retrieval filter. Call <strong>IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters</strong> to obtain this number. 0 is the message at the beginning of the message queue.</p> </dd></param>
<param name = "messageRef"><dd> <p>A reference to a <strong><see cref = "T:SharpDX.DXGI.InformationQueueMessage"/></strong> structure that describes the message.</p> </dd></param>
<param name = "messageByteLengthRef"><dd> <p>A reference to a variable that receives the size, in bytes, of the message description that <em>pMessage</em> points to. This size includes the size of the message string that <em>pMessage</em> points to.</p> </dd></param>
<returns><p>Returns <see cref = "F:SharpDX.Result.Ok"/> if successful; an error code otherwise. For a list of error codes, see DXGI_ERROR.</p></returns>
<remarks>
<p>This method doesn't remove any messages from the message queue.</p><p>This method gets a message from the message queue after an optional retrieval filter has been applied.</p><p>Call this method twice to retrieve a message, first to obtain the size of the message and second to get the message. Here is a typical example:</p><pre> // Get the size of the message.
<see cref = "T:SharpDX.PointerSize"/> messageLength = 0;
<see cref = "T:SharpDX.Result"/> hr = pInfoQueue->GetMessage(DXGI_DEBUG_ALL, 0, <c>null</c>, &messageLength); // Allocate space and get the message.
<see cref = "T:SharpDX.DXGI.InformationQueueMessage"/> * pMessage = (<see cref = "T:SharpDX.DXGI.InformationQueueMessage"/>*)malloc(messageLength);
hr = pInfoQueue->GetMessage(DXGI_DEBUG_ALL, 0, pMessage, &messageLength);
</pre><strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780366</doc-id>
<unmanaged>HRESULT IDXGIInfoQueue::GetMessageW([In] GUID Producer,[In] unsigned longlong MessageIndex,[Out, Buffer, Optional] DXGI_INFO_QUEUE_MESSAGE* pMessage,[InOut] SIZE_T* pMessageByteLength)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::GetMessageW</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetNumStoredMessagesAllowedByRetrievalFilters(System.Guid)">
<summary>
<p>Gets the number of messages that can pass through a retrieval filter.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the number.</p> </dd></param>
<returns><p>Returns the number of messages that can pass through a retrieval filter.</p></returns>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780373</doc-id>
<unmanaged>unsigned longlong IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters([In] GUID Producer)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetNumStoredMessages(System.Guid)">
<summary>
<p>Gets the number of messages currently stored in the message queue.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the number.</p> </dd></param>
<returns><p>Returns the number of messages currently stored in the message queue.</p></returns>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780372</doc-id>
<unmanaged>unsigned longlong IDXGIInfoQueue::GetNumStoredMessages([In] GUID Producer)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::GetNumStoredMessages</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetNumMessagesDiscardedByMessageCountLimit(System.Guid)">
<summary>
<p>Gets the number of messages that were discarded due to the message count limit.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the number.</p> </dd></param>
<returns><p>Returns the number of messages that were discarded.</p></returns>
<remarks>
<p>Get and set the message count limit with <strong>IDXGIInfoQueue::GetMessageCountLimit</strong> and <strong>IDXGIInfoQueue::SetMessageCountLimit</strong>, respectively. </p><strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780371</doc-id>
<unmanaged>unsigned longlong IDXGIInfoQueue::GetNumMessagesDiscardedByMessageCountLimit([In] GUID Producer)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::GetNumMessagesDiscardedByMessageCountLimit</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetMessageCountLimit(System.Guid)">
<summary>
<p>Gets the maximum number of messages that can be added to the message queue.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the number.</p> </dd></param>
<returns><p>Returns the maximum number of messages that can be added to the queue. ?1 means no limit.</p></returns>
<remarks>
<p>When the number of messages in the message queue reaches the maximum limit, new messages coming in push old messages out.</p><strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780367</doc-id>
<unmanaged>unsigned longlong IDXGIInfoQueue::GetMessageCountLimit([In] GUID Producer)</unmanaged>
<unmanaged-short>IDXGIInfoQueue::GetMessageCountLimit</unmanaged-short>
</member>
<member name="M:SharpDX.DXGI.InfoQueue.GetNumMessagesAllowedByStorageFilter(System.Guid)">
<summary>
<p>Gets the number of messages that a storage filter allowed to pass through.</p>
</summary>
<param name = "producer"><dd> <p> A <strong>DXGI_DEBUG_ID</strong> value that identifies the entity that gets the number.</p> </dd></param>
<returns><p>Returns the number of messages allowed by a storage filter.</p></returns>
<remarks>
<strong>Note</strong>??This API requires the Windows Software Development Kit (SDK) for Windows?8.?
</remarks>
<doc-id>hh780369</doc-id>