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

◆ RecreateAndPopulateObject() [1/2]

virtual unsafe int Microsoft.Xna.Framework.Graphics.Effect.RecreateAndPopulateObject ( )
inlinepackagevirtualinherited

Implements Microsoft.Xna.Framework.Graphics.IGraphicsResource.

Definition at line 387 of file Effect.cs.

388 {
389 if (pComPtr != null)
390 {
391 return 0;
392 }
393 GraphicsDevice parent = _parent;
394 if (parent == null)
395 {
396 return -2147467259;
397 }
398 int num = 0;
400 if (weakReference == null)
401 {
403 }
404 else if (weakReference.Target is Effect { pComPtr: var ptr } && ptr != null)
405 {
406 ID3DXEffect* ptr2 = null;
407 num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, IDirect3DDevice9*, ID3DXEffect**, int>)(int)(*(uint*)(*(int*)ptr + 308)))((nint)ptr, (IDirect3DDevice9*)_parent.pStateTracker, &ptr2);
408 pComPtr = ptr2;
411 }
413 if (list != null)
414 {
415 int num2 = 0;
416 if (0 < list.Count)
417 {
418 do
419 {
420 if (num >= 0 && pClonedEffects[num2].Target is Effect effect2 && effect2.pComPtr == null)
421 {
422 num = effect2.RecreateAndPopulateObject();
423 }
424 num2++;
425 }
426 while (num2 < pClonedEffects.Count);
427 }
428 }
429 EffectTechnique currentTechnique = _currentTechnique;
430 if (currentTechnique != null && pComPtr != null)
431 {
432 EffectTechnique currentTechnique2 = currentTechnique;
433 _currentTechnique = null;
435 }
436 return num;
437 }
unsafe void AddTrackedObject(object managedObject, void *pComPtr, uint resourceManagementMode, ulong handle, ref ulong updatedHandle)
unsafe Effect(ID3DXEffect *pInterface, GraphicsDevice pDevice)
Definition Effect.cs:222
unsafe void CreateEffectFromCode(GraphicsDevice graphicsDevice, byte[] effectCode)
Definition Effect.cs:94
List< WeakReference > pClonedEffects
Definition Effect.cs:21
unsafe EffectTechnique CurrentTechnique
Definition Effect.cs:34

References Microsoft.Xna.Framework.Graphics.Effect._currentTechnique, Microsoft.Xna.Framework.Graphics.GraphicsResource._internalHandle, Microsoft.Xna.Framework.Graphics.GraphicsResource._parent, Microsoft.Xna.Framework.Graphics.DeviceResourceManager.AddTrackedObject(), System.Collections.Generic.List< T >.Count, Microsoft.Xna.Framework.Graphics.Effect.CreateEffectFromCode(), Microsoft.Xna.Framework.Graphics.Effect.CurrentTechnique, Microsoft.Xna.Framework.Graphics.Effect.InitializeHelpers(), System.list, Microsoft.Xna.Framework.Graphics.Effect.pCachedEffectData, Microsoft.Xna.Framework.Graphics.Effect.pClonedEffects, Microsoft.Xna.Framework.Graphics.Effect.pComPtr, Microsoft.Xna.Framework.Graphics.Effect.pParentEffect, Microsoft.Xna.Framework.Graphics.GraphicsDevice.pStateTracker, Microsoft.Xna.Framework.Graphics.GraphicsDevice.Resources, and Microsoft.Xna.Framework.Graphics.Target.

Referenced by Microsoft.Xna.Framework.Graphics.Effect.RecreateAndPopulateObject().