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

◆ GetAndValidateBox()

static unsafe void Microsoft.Xna.Framework.Graphics.Texture3D.GetAndValidateBox ( _D3DVOLUME_DESC * pVolume,
uint * pdwLockWidth,
uint * pdwLockHeight,
uint * pdwLockDepth,
_D3DBOX * pBox )
inlinestaticpackage

Definition at line 345 of file Texture3D.cs.

346 {
347 if (pVolume == null || pdwLockHeight == null || pdwLockWidth == null || pdwLockDepth == null)
348 {
349 return;
350 }
351 *pdwLockWidth = *(uint*)((byte*)pVolume + 16);
352 *pdwLockHeight = *(uint*)((byte*)pVolume + 20);
353 *pdwLockDepth = *(uint*)((byte*)pVolume + 24);
354 if (pBox == null)
355 {
356 return;
357 }
358 uint num = *(uint*)((byte*)pBox + 8);
359 if (num <= (uint)(*(int*)((byte*)pVolume + 16)))
360 {
361 uint num2 = *(uint*)pBox;
362 if (num2 < num)
363 {
364 uint num3 = *(uint*)((byte*)pBox + 12);
365 if (num3 <= (uint)(*(int*)((byte*)pVolume + 20)) && (uint)(*(int*)((byte*)pBox + 4)) < num3)
366 {
367 uint num4 = *(uint*)((byte*)pBox + 20);
368 if (num4 <= (uint)(*(int*)((byte*)pVolume + 24)) && (uint)(*(int*)((byte*)pBox + 16)) < num4)
369 {
370 *pdwLockWidth = num - num2;
371 *pdwLockHeight = (uint)(*(int*)((byte*)pBox + 12) - *(int*)((byte*)pBox + 4));
372 *pdwLockDepth = (uint)(*(int*)((byte*)pBox + 20) - *(int*)((byte*)pBox + 16));
373 return;
374 }
375 }
376 }
377 }
378 throw new ArgumentException(FrameworkResources.InvalidRectangle, "box");
379 }

References Microsoft.Xna.Framework.FrameworkResources.InvalidRectangle.

Referenced by Microsoft.Xna.Framework.Graphics.Texture3D.CopyData< T >().