public static NativeArray <ushort> GetIndices(this Sprite sprite) { SpriteChannelInfo indicesInfo = SpriteDataAccessExtensions.GetIndicesInfo(sprite); NativeArray <ushort> result = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray <ushort>(indicesInfo.buffer, indicesInfo.count, Allocator.Invalid); NativeArrayUnsafeUtility.SetAtomicSafetyHandle <ushort>(ref result, sprite.GetSafetyHandle()); return(result); }
public static NativeArray <Matrix4x4> GetBindPoses(this Sprite sprite) { SpriteChannelInfo bindPoseInfo = SpriteDataAccessExtensions.GetBindPoseInfo(sprite); NativeArray <Matrix4x4> result = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray <Matrix4x4>(bindPoseInfo.buffer, bindPoseInfo.count, Allocator.Invalid); NativeArrayUnsafeUtility.SetAtomicSafetyHandle <Matrix4x4>(ref result, sprite.GetSafetyHandle()); return(result); }
private NativeArray <T> GetNativeDataArray <T>(SpriteShapeDataType dataType) where T : struct { this.RefreshSafetyHandle(dataType); SpriteChannelInfo dataInfo = this.GetDataInfo(dataType); NativeArray <T> result = NativeArrayUnsafeUtility.ConvertExistingDataToNativeArray <T>(dataInfo.buffer, dataInfo.count, Allocator.Invalid); NativeArrayUnsafeUtility.SetAtomicSafetyHandle <T>(ref result, this.GetSafetyHandle(dataType)); return(result); }
private unsafe NativeSlice <T> GetChannelDataArray <T>(SpriteShapeDataType dataType, VertexAttribute channel) where T : struct { this.RefreshSafetyHandle(dataType); SpriteChannelInfo channelInfo = this.GetChannelInfo(channel); byte * dataPointer = (byte *)channelInfo.buffer + channelInfo.offset; NativeSlice <T> result = NativeSliceUnsafeUtility.ConvertExistingDataToNativeSlice <T>((void *)dataPointer, channelInfo.stride, channelInfo.count); NativeSliceUnsafeUtility.SetAtomicSafetyHandle <T>(ref result, this.GetSafetyHandle(dataType)); return(result); }
public unsafe static NativeSlice <T> GetVertexAttribute <T>(this Sprite sprite, VertexAttribute channel) where T : struct { SpriteDataAccessExtensions.CheckAttributeTypeMatchesAndThrow <T>(channel); SpriteChannelInfo channelInfo = SpriteDataAccessExtensions.GetChannelInfo(sprite, channel); byte * dataPointer = (byte *)channelInfo.buffer + channelInfo.offset; NativeSlice <T> result = NativeSliceUnsafeUtility.ConvertExistingDataToNativeSlice <T>((void *)dataPointer, channelInfo.stride, channelInfo.count); NativeSliceUnsafeUtility.SetAtomicSafetyHandle <T>(ref result, sprite.GetSafetyHandle()); return(result); }
private extern void GetChannelInfo_Injected(VertexAttribute channel, out SpriteChannelInfo ret);
private extern void GetDataInfo_Injected(SpriteShapeDataType arrayType, out SpriteChannelInfo ret);
private static extern void GetChannelInfo_Injected(Sprite sprite, VertexAttribute channel, out SpriteChannelInfo ret);
private static extern void GetIndicesInfo_Injected(Sprite sprite, out SpriteChannelInfo ret);
private static extern void GetBindPoseInfo_Injected(Sprite sprite, out SpriteChannelInfo ret);