mirror of
https://github.com/SashLilac/cambridge.git
synced 2024-11-23 11:59:03 -06:00
54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
|
using System;
|
||
|
using System.Runtime.InteropServices;
|
||
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
||
|
using UnityEngine;
|
||
|
#endif
|
||
|
|
||
|
namespace Discord
|
||
|
{
|
||
|
public partial struct ImageHandle
|
||
|
{
|
||
|
static public ImageHandle User(Int64 id)
|
||
|
{
|
||
|
return User(id, 128);
|
||
|
}
|
||
|
|
||
|
static public ImageHandle User(Int64 id, UInt32 size)
|
||
|
{
|
||
|
return new ImageHandle
|
||
|
{
|
||
|
Type = ImageType.User,
|
||
|
Id = id,
|
||
|
Size = size,
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public partial class ImageManager
|
||
|
{
|
||
|
public void Fetch(ImageHandle handle, FetchHandler callback)
|
||
|
{
|
||
|
Fetch(handle, false, callback);
|
||
|
}
|
||
|
|
||
|
public byte[] GetData(ImageHandle handle)
|
||
|
{
|
||
|
var dimensions = GetDimensions(handle);
|
||
|
var data = new byte[dimensions.Width * dimensions.Height * 4];
|
||
|
GetData(handle, data);
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
||
|
public Texture2D GetTexture(ImageHandle handle)
|
||
|
{
|
||
|
var dimensions = GetDimensions(handle);
|
||
|
var texture = new Texture2D((int)dimensions.Width, (int)dimensions.Height, TextureFormat.RGBA32, false, true);
|
||
|
texture.LoadRawTextureData(GetData(handle));
|
||
|
texture.Apply();
|
||
|
return texture;
|
||
|
}
|
||
|
#endif
|
||
|
}
|
||
|
}
|