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

◆ GetValueMatrixTranspose()

unsafe Matrix Microsoft.Xna.Framework.Graphics.EffectParameter.GetValueMatrixTranspose ( )
inline

Definition at line 2391 of file EffectParameter.cs.

2392 {
2393 Matrix result = default(Matrix);
2394 ID3DXBaseEffect* ptr;
2395 if (pElementCollection.Count == 0)
2396 {
2397 switch (_paramClass)
2398 {
2399 case EffectParameterClass.Scalar:
2400 {
2401 ptr = pEffect;
2402 System.Runtime.CompilerServices.Unsafe.SkipInit(out float num);
2403 int num2 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, sbyte*, float*, int>)(int)(*(uint*)(*(int*)ptr + 124)))((nint)ptr, _handle, &num);
2404 if (num2 < 0)
2405 {
2406 throw GraphicsHelpers.GetExceptionFromResult((uint)num2);
2407 }
2408 result.M14 = num;
2409 result.M13 = num;
2410 result.M12 = num;
2411 result.M11 = num;
2412 result.M24 = num;
2413 result.M23 = num;
2414 result.M22 = num;
2415 result.M21 = num;
2416 result.M34 = num;
2417 result.M33 = num;
2418 result.M32 = num;
2419 result.M31 = num;
2420 result.M44 = num;
2421 result.M43 = num;
2422 result.M42 = num;
2423 result.M41 = num;
2424 return result;
2425 }
2426 default:
2427 throw new InvalidCastException();
2428 case EffectParameterClass.Matrix:
2429 break;
2430 }
2431 }
2432 ptr = pEffect;
2433 int num3 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, sbyte*, D3DXMATRIX*, int>)(int)(*(uint*)(*(int*)ptr + 180)))((nint)ptr, _handle, (D3DXMATRIX*)(&result));
2434 if (num3 < 0)
2435 {
2436 throw GraphicsHelpers.GetExceptionFromResult((uint)num3);
2437 }
2438 return result;
2439 }

References Microsoft.Xna.Framework.Graphics.EffectParameter._handle, Microsoft.Xna.Framework.Graphics.EffectParameter._paramClass, Microsoft.Xna.Framework.Graphics.EffectParameterCollection.Count, Microsoft.Xna.Framework.Graphics.GraphicsHelpers.GetExceptionFromResult(), Microsoft.Xna.Framework.Graphics.EffectParameter.pEffect, and Microsoft.Xna.Framework.Graphics.EffectParameter.pElementCollection.