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

◆ GetValueQuaternion()

unsafe Quaternion Microsoft.Xna.Framework.Graphics.EffectParameter.GetValueQuaternion ( )
inline

Definition at line 2214 of file EffectParameter.cs.

2215 {
2216 Quaternion result = default(Quaternion);
2217 ID3DXBaseEffect* ptr;
2218 if (pElementCollection.Count == 0)
2219 {
2220 switch (_paramClass)
2221 {
2222 case EffectParameterClass.Scalar:
2223 {
2224 ptr = pEffect;
2225 System.Runtime.CompilerServices.Unsafe.SkipInit(out float num);
2226 int num2 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, sbyte*, float*, int>)(int)(*(uint*)(*(int*)ptr + 124)))((nint)ptr, _handle, &num);
2227 if (num2 < 0)
2228 {
2229 throw GraphicsHelpers.GetExceptionFromResult((uint)num2);
2230 }
2231 result.W = num;
2232 result.Z = num;
2233 result.Y = num;
2234 result.X = num;
2235 return result;
2236 }
2237 case EffectParameterClass.Vector:
2238 break;
2239 default:
2240 throw new InvalidCastException();
2241 }
2242 if (_columns != 4 || _rows != 1)
2243 {
2244 throw new InvalidCastException();
2245 }
2246 }
2247 ptr = pEffect;
2248 int num3 = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, sbyte*, D3DXVECTOR4*, int>)(int)(*(uint*)(*(int*)ptr + 140)))((nint)ptr, _handle, (D3DXVECTOR4*)(&result));
2249 if (num3 < 0)
2250 {
2251 throw GraphicsHelpers.GetExceptionFromResult((uint)num3);
2252 }
2253 return result;
2254 }

References Microsoft.Xna.Framework.Graphics.EffectParameter._columns, Microsoft.Xna.Framework.Graphics.EffectParameter._handle, Microsoft.Xna.Framework.Graphics.EffectParameter._paramClass, Microsoft.Xna.Framework.Graphics.EffectParameter._rows, 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.