Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SupportedDisplayModes

unsafe DisplayModeCollection Microsoft.Xna.Framework.Graphics.GraphicsAdapter.SupportedDisplayModes
get

Definition at line 136 of file GraphicsAdapter.cs.

137 {
138 get
139 {
140 if (_supportedDisplayModes == null)
141 {
143 if (pComPtr != null)
144 {
145 List<SurfaceFormat>.Enumerator enumerator = ProfileCapabilities.HiDef.ValidTextureFormats.GetEnumerator();
146 if (enumerator.MoveNext())
147 {
149 do
150 {
151 SurfaceFormat current = enumerator.Current;
152 _D3DFORMAT d3DFORMAT = _003CModule_003E.ConvertXnaFormatToWindowsAdapterFormat(current);
153 int num = *(int*)pComPtr + 24;
154 int num2 = (int)((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, _D3DFORMAT, uint>)(int)(*(uint*)num))((nint)pComPtr, adapter, d3DFORMAT);
155 if (num2 <= 0)
156 {
157 continue;
158 }
160 int num3 = 0;
161 if (0 >= num2)
162 {
163 continue;
164 }
165 do
166 {
167 int num4 = *(int*)pComPtr + 28;
168 if (((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, _D3DFORMAT, uint, _D3DDISPLAYMODE*, int>)(int)(*(uint*)num4))((nint)pComPtr, adapter, d3DFORMAT, (uint)num3, &d3DDISPLAYMODE) >= 0)
169 {
171 if (!dictionary.ContainsKey(key))
172 {
173 dictionary.Add(key, value: true);
174 list.Add(new DisplayMode(*(int*)(&d3DDISPLAYMODE), System.Runtime.CompilerServices.Unsafe.As<_D3DDISPLAYMODE, int>(ref System.Runtime.CompilerServices.Unsafe.AddByteOffset(ref d3DDISPLAYMODE, 4)), current));
175 }
176 }
177 num3++;
178 }
179 while (num3 < num2);
180 }
181 while (enumerator.MoveNext());
182 }
183 }
184 _supportedDisplayModes = new DisplayModeCollection(list);
185 }
187 }
188 }