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

◆ FromStream< T >() [2/2]

async ValueTask< T > ReLogic.Content.Readers.PngReader.FromStream< T > ( Stream stream,
MainThreadCreationContext mainThreadCtx )
inline

Implements ReLogic.Content.Readers.IAssetReader.

Type Constraints
T :class 

Definition at line 29 of file PngReader.cs.

29 : class
30 {
31 if (typeof(T) != typeof(Texture2D))
32 {
33 throw AssetLoadException.FromInvalidReader<PngReader, T>();
34 }
35 int width = default(int);
36 int height = default(int);
37 int len = default(int);
38 IntPtr img = FNA3D.ReadImageStream(stream, ref width, ref height, ref len, -1, -1, false);
40 await mainThreadCtx;
41 Texture2D val = new Texture2D(_graphicsDevice, width, height);
42 val.SetDataPointerEXT(0, (Rectangle?)null, img, len);
43 FNA3D.FNA3D_Image_Free(img);
44 return val as T;
45 }
static unsafe void PreMultiplyAlpha(IntPtr img, int len)
Definition PngReader.cs:64
PngReader(GraphicsDevice graphicsDevice)
Definition PngReader.cs:18
readonly GraphicsDevice _graphicsDevice
Definition PngReader.cs:12

References ReLogic.Content.Readers.PngReader.PngReader(), ReLogic.Content.Readers.PngReader._graphicsDevice, System.len, ReLogic.Content.Readers.PngReader.PreMultiplyAlpha(), System.stream, System.T, and Microsoft.Xna.Framework.Graphics.Texture2D.