Show More
Commit Description:
Various UI improvements.
Commit Description:
Various UI improvements.
References:
File last commit:
Show/Diff file:
Action:
FNA/src/Content/ContentReaders/TextureCubeReader.cs
66 lines | 1.3 KiB | text/x-csharp | CSharpLexer
66 lines | 1.3 KiB | text/x-csharp | CSharpLexer
r0 | #region License | |||
/* FNA - XNA4 Reimplementation for Desktop Platforms | ||||
* Copyright 2009-2020 Ethan Lee and the MonoGame Team | ||||
* | ||||
* Released under the Microsoft Public License. | ||||
* See LICENSE for details. | ||||
*/ | ||||
#endregion | ||||
#region Using Statements | ||||
using Microsoft.Xna.Framework.Graphics; | ||||
#endregion | ||||
namespace Microsoft.Xna.Framework.Content | ||||
{ | ||||
internal class TextureCubeReader : ContentTypeReader<TextureCube> | ||||
{ | ||||
#region Protected Read Method | ||||
protected internal override TextureCube Read( | ||||
ContentReader reader, | ||||
TextureCube existingInstance | ||||
) { | ||||
TextureCube textureCube; | ||||
SurfaceFormat surfaceFormat = (SurfaceFormat) reader.ReadInt32(); | ||||
int size = reader.ReadInt32(); | ||||
int levels = reader.ReadInt32(); | ||||
if (existingInstance == null) | ||||
{ | ||||
textureCube = new TextureCube( | ||||
reader.ContentManager.GetGraphicsDevice(), | ||||
size, | ||||
levels > 1, | ||||
surfaceFormat | ||||
); | ||||
} | ||||
else | ||||
{ | ||||
textureCube = existingInstance; | ||||
} | ||||
for (int face = 0; face < 6; face += 1) | ||||
{ | ||||
for (int i = 0; i < levels; i += 1) | ||||
{ | ||||
int faceSize = reader.ReadInt32(); | ||||
byte[] faceData = reader.ReadBytes(faceSize); | ||||
textureCube.SetData<byte>( | ||||
(CubeMapFace) face, | ||||
i, | ||||
null, | ||||
faceData, | ||||
0, | ||||
faceSize | ||||
); | ||||
} | ||||
} | ||||
return textureCube; | ||||
} | ||||
#endregion | ||||
} | ||||
} | ||||