84 lines
1.9 KiB
C#
84 lines
1.9 KiB
C#
using System.Drawing;
|
|
|
|
namespace Dashboard.Pal
|
|
{
|
|
public interface ITextureExtension : IDeviceContextExtension
|
|
{
|
|
ITexture CreateTexture(TextureType type);
|
|
}
|
|
|
|
public enum TextureType
|
|
{
|
|
Texture1D,
|
|
Texture2D,
|
|
Texture2DArray,
|
|
Texture2DCube,
|
|
Texture3D,
|
|
}
|
|
|
|
public enum TextureFilter
|
|
{
|
|
Nearest,
|
|
Linear,
|
|
NearestMipmapNearest,
|
|
LinearMipmapNearest,
|
|
NearestMipmapLinear,
|
|
LinearMipmapLinear,
|
|
Anisotropic,
|
|
}
|
|
|
|
public enum TextureRepeat
|
|
{
|
|
Repeat,
|
|
MirroredRepeat,
|
|
ClampToEdge,
|
|
ClampToBorder,
|
|
MirrorClampToEdge,
|
|
}
|
|
|
|
public enum CubeMapFace
|
|
{
|
|
PositiveX,
|
|
PositiveY,
|
|
PositiveZ,
|
|
NegativeX,
|
|
NegativeY,
|
|
NegativeZ,
|
|
}
|
|
|
|
public interface ITexture : IDisposable
|
|
{
|
|
public TextureType Type { get; }
|
|
public PixelFormat Format { get; }
|
|
|
|
public int Width { get; }
|
|
public int Height { get; }
|
|
public int Depth { get; }
|
|
public int Levels { get; }
|
|
|
|
public bool Premultiplied { get; set; }
|
|
|
|
public ColorSwizzle Swizzle { get; set; }
|
|
|
|
public TextureFilter MinifyFilter { get; set; }
|
|
|
|
public TextureFilter MagnifyFilter { get; set; }
|
|
|
|
public Color BorderColor { get; set; }
|
|
|
|
public TextureRepeat RepeatS { get; set; }
|
|
|
|
public TextureRepeat RepeatT { get; set; }
|
|
|
|
public TextureRepeat RepeatR { get; set; }
|
|
public int Anisotropy { get; set; }
|
|
|
|
void SetStorage(PixelFormat format, int width, int height, int depth, int levels);
|
|
void Read<T>(Span<T> buffer, int level = 0, int align = 0) where T : unmanaged;
|
|
void Write<T>(PixelFormat format, ReadOnlySpan<T> buffer, int level = 0, int align = 4) where T : unmanaged;
|
|
void Premultiply();
|
|
void Unmultiply();
|
|
void GenerateMipmaps();
|
|
}
|
|
}
|