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

◆ SaveDataForRecreation() [1/2]

virtual unsafe int Microsoft.Xna.Framework.Graphics.IndexBuffer.SaveDataForRecreation ( )
inlinepackagevirtual

Implements Microsoft.Xna.Framework.Graphics.IGraphicsResource.

Reimplemented in Microsoft.Xna.Framework.Graphics.DynamicIndexBuffer, and Microsoft.Xna.Framework.Graphics.DynamicIndexBuffer.

Definition at line 283 of file IndexBuffer.cs.

284 {
285 if (pComPtr == null)
286 {
287 return 0;
288 }
289 int num = 0;
290 if ((_usage & 8) == 8)
291 {
292 goto IL_0088;
293 }
294 void* ptr = null;
295 if ((pBufferData = _003CModule_003E.new_005B_005D(_bufferSize)) == null)
296 {
297 return -2147024882;
298 }
299 IDirect3DIndexBuffer9* ptr2 = pComPtr;
300 num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, uint, uint, void**, uint, int>)(int)(*(uint*)(*(int*)ptr2 + 44)))((nint)ptr2, 0u, 0u, &ptr, 0u);
301 if (num >= 0)
302 {
303 uint bufferSize = _bufferSize;
304 _003CModule_003E.memcpy_s(pBufferData, bufferSize, ptr, bufferSize);
305 ptr2 = pComPtr;
306 IDirect3DIndexBuffer9* intPtr = ptr2;
307 num = ((delegate* unmanaged[Stdcall, Stdcall]<IntPtr, int>)(int)(*(uint*)(*(int*)intPtr + 48)))((nint)intPtr);
308 if (num >= 0)
309 {
310 goto IL_0088;
311 }
312 }
313 void* ptr3 = pBufferData;
314 if (ptr3 != null)
315 {
316 _003CModule_003E.delete_005B_005D(ptr3);
317 pBufferData = null;
318 }
319 goto IL_00a8;
320 IL_0088:
321 ReleaseNativeObject(disposeManagedResource: false);
322 goto IL_00a8;
323 IL_00a8:
324 return num;
325 }
virtual unsafe void ReleaseNativeObject([MarshalAs(UnmanagedType.U1)] bool disposeManagedResource)
unsafe IDirect3DIndexBuffer9 * pComPtr

References Microsoft.Xna.Framework.Graphics.IndexBuffer._bufferSize, Microsoft.Xna.Framework.Graphics.IndexBuffer._usage, Microsoft.Xna.Framework.Graphics.IndexBuffer.pBufferData, Microsoft.Xna.Framework.Graphics.IndexBuffer.pComPtr, and Microsoft.Xna.Framework.Graphics.IndexBuffer.ReleaseNativeObject().

Referenced by Microsoft.Xna.Framework.Graphics.IndexBuffer.SaveDataForRecreation().