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

◆ GetValueTexture2D()

unsafe Texture2D Microsoft.Xna.Framework.Graphics.EffectParameter.GetValueTexture2D ( )
inline

Definition at line 2490 of file EffectParameter.cs.

2491 {
2492 EffectParameterType paramType = _paramType;
2493 if (paramType != EffectParameterType.Texture && paramType != EffectParameterType.Texture2D)
2494 {
2495 throw new InvalidCastException();
2496 }
2497 IDirect3DBaseTexture9* ptr = null;
2498 IDirect3DTexture9* ptr2 = null;
2499 Texture2D result = null;
2500 ID3DXBaseEffect* ptr3 = pEffect;
2501 int num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, sbyte*, IDirect3DBaseTexture9**, int>)(int)(*(uint*)(*(int*)ptr3 + 212)))((nint)ptr3, _handle, &ptr);
2502 if (num < 0)
2503 {
2504 throw GraphicsHelpers.GetExceptionFromResult((uint)num);
2505 }
2506 if (ptr != null)
2507 {
2508 IDirect3DBaseTexture9* ptr4 = (IDirect3DBaseTexture9*)(int)(*(uint*)((byte*)ptr + 8));
2509 num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, _GUID*, void**, int>)(int)(*(uint*)(int)(*(uint*)ptr4)))((nint)ptr4, (_GUID*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref _003CModule_003E.IID_IDirect3DTexture9), (void**)(&ptr2));
2510 if (num >= 0)
2511 {
2512 System.Runtime.CompilerServices.Unsafe.SkipInit(out _D3DSURFACE_DESC d3DSURFACE_DESC);
2513 num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, _D3DSURFACE_DESC*, int>)(int)(*(uint*)(*(int*)ptr2 + 68)))((nint)ptr2, 0u, &d3DSURFACE_DESC);
2514 if (num >= 0)
2515 {
2516 result = Texture2D.GetManagedObject(ptr2, _parent.GraphicsDevice, System.Runtime.CompilerServices.Unsafe.As<_D3DSURFACE_DESC, uint>(ref System.Runtime.CompilerServices.Unsafe.AddByteOffset(ref d3DSURFACE_DESC, 12)));
2517 }
2518 }
2519 if (ptr != null)
2520 {
2521 IDirect3DBaseTexture9* intPtr = ptr;
2522 ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint>)(int)(*(uint*)(*(int*)intPtr + 8)))((nint)intPtr);
2523 ptr = null;
2524 }
2525 if (num < 0)
2526 {
2527 throw GraphicsHelpers.GetExceptionFromResult((uint)num);
2528 }
2529 }
2530 return result;
2531 }

References Microsoft.Xna.Framework.Graphics.EffectParameter._handle, Microsoft.Xna.Framework.Graphics.EffectParameter._paramType, Microsoft.Xna.Framework.Graphics.EffectParameter._parent, Microsoft.Xna.Framework.Graphics.GraphicsHelpers.GetExceptionFromResult(), Microsoft.Xna.Framework.Graphics.Texture2D.GetManagedObject(), Microsoft.Xna.Framework.Graphics.GraphicsResource.GraphicsDevice, and Microsoft.Xna.Framework.Graphics.EffectParameter.pEffect.