22 internal unsafe IDirect3DIndexBuffer9*
pComPtr;
42 ((object)
this)._002Ector();
66 CreateBuffer((uint)indexCount, indexSize, _003CModule_003E.ConvertXnaBufferUsageToDx(usage), (_D3DPOOL)1);
87 int indexSize = ((indexElementSize ==
IndexElementSize.SixteenBits) ? 2 : 4);
88 CreateBuffer((uint)indexCount, (uint)indexSize, _003CModule_003E.ConvertXnaBufferUsageToDx(usage), (_D3DPOOL)1);
106 int elementCount = ((data !=
null) ? data.Length : 0);
107 SetData(0, data, 0, elementCount);
117 CopyData(offsetInBytes, data,
startIndex, elementCount, 0u, isSetting:
true);
122 int elementCount = ((data !=
null) ? data.Length : 0);
123 GetData(0, data, 0, elementCount);
133 CopyData(offsetInBytes, data,
startIndex, elementCount, 16u, isSetting:
false);
140 if (data !=
null && data.Length != 0)
142 int num = -2147467259;
143 if ((
options & 0x3010) == 0 && _parent.Indices ==
this)
147 if (!isSetting && (
_usage & 8) == 8)
155 if ((uint)((int)num2 + offsetInBytes) >
_bufferSize)
185 ptr3 = offsetInBytes + ptr3;
187 IDirect3DIndexBuffer9* ptr4 =
pComPtr;
188 num = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, uint,
void**, uint,
int>)(
int)(*(uint*)(*(
int*)ptr4 + 44)))((nint)ptr4, (uint)offsetInBytes, num2, &ptr2,
options);
197 _003CModule_003E.memcpy_s(ptr2,
_bufferSize - (uint)offsetInBytes, ptr5, num2);
200 _003CModule_003E.memcpy_s(ptr3,
_bufferSize - (uint)offsetInBytes, ptr5, num2);
205 _003CModule_003E.memcpy_s(ptr5, num2, ptr2, num2);
221 IDirect3DIndexBuffer9* intPtr2 =
pComPtr;
222 num = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr,
int>)(
int)(*(uint*)(*(
int*)intPtr2 + 48)))((nint)intPtr2);
231 dynamicGraphicsResource.SetContentLost(isContentLost:
false);
238 private protected unsafe
void CreateBuffer(uint indexCount, uint indexSize, uint usage, _D3DPOOL pool)
241 _D3DFORMAT d3DFORMAT;
244 d3DFORMAT = (_D3DFORMAT)102;
256 d3DFORMAT = (_D3DFORMAT)101;
260 if (num > (uint)maxIndexBufferSize)
264 fixed (IDirect3DIndexBuffer9** ptr = &
pComPtr)
267 int num3 = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, uint, _D3DFORMAT, _D3DPOOL, IDirect3DIndexBuffer9**,
void**,
int>)(
int)(*(uint*)num2))((nint)
_parent.
pComPtr,
_bufferSize,
_parent.
GetBufferUsage(usage), d3DFORMAT, pool, ptr,
null);
276 if ((usage & 8) == 8 && pool == (_D3DPOOL)1 && (
pBufferData = _003CModule_003E.new_005B_005D(
_bufferSize)) ==
null)
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);
304 _003CModule_003E.memcpy_s(
pBufferData, bufferSize, ptr, bufferSize);
306 IDirect3DIndexBuffer9* intPtr = ptr2;
307 num = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr,
int>)(
int)(*(uint*)(*(
int*)intPtr + 48)))((nint)intPtr);
316 _003CModule_003E.delete_005B_005D(ptr3);
343 fixed (IDirect3DIndexBuffer9** ptr2 = &
pComPtr)
345 _D3DFORMAT d3DFORMAT = ((
_indexSize == 4) ? ((_D3DFORMAT)102) : ((_D3DFORMAT)101));
347 IDirect3DDevice9* ptr = parent.
pComPtr;
349 int num = *(
int*)ptr + 108;
350 int num2 = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, uint, _D3DFORMAT, _D3DPOOL, IDirect3DIndexBuffer9**,
void**,
int>)(
int)(*(uint*)num))((nint)ptr,
_bufferSize, graphicsDevice.
GetBufferUsage(
_usage), d3DFORMAT, (_D3DPOOL)1, ptr2,
null);
354 IDirect3DIndexBuffer9* ptr4 =
pComPtr;
355 num2 = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, uint,
void**, uint,
int>)(
int)(*(uint*)(*(
int*)ptr4 + 44)))((nint)ptr4, 0u, 0u, &ptr3, 0u);
359 _003CModule_003E.memcpy_s(ptr3, bufferSize,
pBufferData, bufferSize);
361 IDirect3DIndexBuffer9* intPtr = ptr4;
362 num2 = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr,
int>)(
int)(*(uint*)(*(
int*)intPtr + 48)))((nint)intPtr);
369 _003CModule_003E.delete_005B_005D(ptr5);
388 if (parent !=
null &&
pComPtr !=
null)
404 if (indexBuffer !=
null)
406 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint>)(
int)(*(uint*)(*(
int*)pInterface + 8)))((nint)pInterface);
407 indexBuffer.isDisposed =
false;
412 indexBuffer =
new IndexBuffer(pInterface, pDevice);
430 _003CModule_003E.delete_005B_005D(ptr);
441 [HandleProcessCorruptedStateExceptions]
static string NullNotAllowed
static string WriteOnlyGetNotSupported
static string ProfileTooBig
static string ResourcesMustBeGreaterThanZeroSize
static string ResourceDataMustBeCorrectSize
static string ProfileNoIndexElementSize32
static string IndexBuffersMustBeSizedCorrectly
unsafe object GetCachedObject(void *pComPtr)
unsafe void AddTrackedObject(object managedObject, void *pComPtr, uint resourceManagementMode, ulong handle, ref ulong updatedHandle)
unsafe void ReleaseAllReferences(ulong handle, [MarshalAs(UnmanagedType.U1)] bool dispose)
virtual void Dispose([MarshalAs(UnmanagedType.U1)] bool P_0)
DeviceResourceManager Resources
ProfileCapabilities _profileCapabilities
uint GetBufferUsage(uint usage)
unsafe IDirect3DDevice9 * pComPtr
static Exception GetExceptionFromResult(uint result)
unsafe void * pBufferData
unsafe void CreateBuffer(uint indexCount, uint indexSize, uint usage, _D3DPOOL pool)
unsafe IndexBuffer(GraphicsDevice graphicsDevice, IndexElementSize indexElementSize, int indexCount, BufferUsage usage)
unsafe void CopyData< T >(int offsetInBytes, T[] data, int startIndex, int elementCount, uint options, [MarshalAs(UnmanagedType.U1)] bool isSetting)
virtual unsafe void ReleaseNativeObject([MarshalAs(UnmanagedType.U1)] bool disposeManagedResource)
override void Dispose([MarshalAs(UnmanagedType.U1)] bool P_0)
unsafe IndexBuffer(GraphicsDevice graphicsDevice, Type indexType, int indexCount, BufferUsage usage)
static unsafe IndexBuffer GetManagedObject(IDirect3DIndexBuffer9 *pInterface, GraphicsDevice pDevice, uint pool)
unsafe IDirect3DIndexBuffer9 * pComPtr
virtual unsafe int RecreateAndPopulateObject()
virtual unsafe int SaveDataForRecreation()
unsafe IndexBuffer(IDirect3DIndexBuffer9 *pInterface, GraphicsDevice pDevice)
void GetData< T >(T[] data)
void SetData< T >(T[] data)
unsafe void _0021IndexBuffer()
void ThrowNotSupportedException(string message)
static void CheckDisposed(object obj, IntPtr pComPtr)
static void ValidateCopyParameters(int dataLength, int dataIndex, int elementCount)
static void ReRegisterForFinalize(object obj)
static unsafe void InitBlock(void *startAddress, byte value, uint byteCount)
static int SizeOf(object structure)
void ReleaseNativeObject([MarshalAs(UnmanagedType.U1)] bool disposeManagedResource)
int RecreateAndPopulateObject()
int SaveDataForRecreation()