Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 private extern void GetChannelInfo_Injected(VertexAttribute channel, out SpriteChannelInfo ret);
Пример #7
0
 private extern void GetDataInfo_Injected(SpriteShapeDataType arrayType, out SpriteChannelInfo ret);
Пример #8
0
 private static extern void GetChannelInfo_Injected(Sprite sprite, VertexAttribute channel, out SpriteChannelInfo ret);
Пример #9
0
 private static extern void GetIndicesInfo_Injected(Sprite sprite, out SpriteChannelInfo ret);
Пример #10
0
 private static extern void GetBindPoseInfo_Injected(Sprite sprite, out SpriteChannelInfo ret);