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

◆ DrawPrimitives()

unsafe void Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawPrimitives ( PrimitiveType primitiveType,
int startVertex,
int primitiveCount )
inline

Definition at line 1280 of file GraphicsDevice.cs.

1281 {
1282 IntPtr intPtr = (IntPtr)pComPtr;
1283 Helpers.CheckDisposed(this, intPtr);
1284 if (primitiveCount <= 0)
1285 {
1286 throw new ArgumentOutOfRangeException("primitiveCount", FrameworkResources.MustDrawSomething);
1287 }
1288 int maxPrimitiveCount = _profileCapabilities.MaxPrimitiveCount;
1289 if (primitiveCount > maxPrimitiveCount)
1290 {
1291 _profileCapabilities.ThrowNotSupportedException(FrameworkResources.ProfileMaxPrimitiveCount, maxPrimitiveCount);
1292 }
1293 VerifyCanDraw(bUserPrimitives: false, bIndexedPrimitives: false);
1294 if (instanceStreamMask != 0)
1295 {
1296 throw new InvalidOperationException(FrameworkResources.NonZeroInstanceFrequency);
1297 }
1298 if (!_insideScene)
1299 {
1300 IDirect3DDevice9* intPtr2 = pComPtr;
1301 ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, int>)(int)(*(uint*)(*(int*)intPtr2 + 164)))((nint)intPtr2);
1302 _insideScene = true;
1303 }
1304 int num = *(int*)pComPtr + 324;
1305 int num2 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, _D3DPRIMITIVETYPE, uint, uint, int>)(int)(*(uint*)num))((nint)pComPtr, _003CModule_003E.ConvertXnaPrimitiveTypeToDx(primitiveType), (uint)startVertex, (uint)primitiveCount);
1306 if (num2 < 0)
1307 {
1308 throw GraphicsHelpers.GetExceptionFromResult((uint)num2);
1309 }
1310 }
unsafe void VerifyCanDraw([MarshalAs(UnmanagedType.U1)] bool bUserPrimitives, [MarshalAs(UnmanagedType.U1)] bool bIndexedPrimitives)

References Microsoft.Xna.Framework.Graphics.GraphicsDevice._insideScene, Microsoft.Xna.Framework.Graphics.GraphicsDevice._profileCapabilities, Microsoft.Xna.Framework.Helpers.CheckDisposed(), Microsoft.Xna.Framework.Graphics.GraphicsHelpers.GetExceptionFromResult(), Microsoft.Xna.Framework.Graphics.GraphicsDevice.instanceStreamMask, Microsoft.Xna.Framework.Graphics.ProfileCapabilities.MaxPrimitiveCount, Microsoft.Xna.Framework.FrameworkResources.MustDrawSomething, Microsoft.Xna.Framework.FrameworkResources.NonZeroInstanceFrequency, Microsoft.Xna.Framework.Graphics.GraphicsDevice.pComPtr, Microsoft.Xna.Framework.FrameworkResources.ProfileMaxPrimitiveCount, Microsoft.Xna.Framework.Graphics.ProfileCapabilities.ThrowNotSupportedException(), and Microsoft.Xna.Framework.Graphics.GraphicsDevice.VerifyCanDraw().