83 lines
2.4 KiB
C#
83 lines
2.4 KiB
C#
using SlimDX.Direct3D10;
|
|
namespace Aiwaz.Contracts
|
|
{
|
|
public struct LockedTextureData
|
|
{
|
|
public byte[] Data;
|
|
public int RowPitch;
|
|
};
|
|
|
|
public class TextureInitialData
|
|
{
|
|
public TextureInitialData(byte[] Data, int Pitch)
|
|
{
|
|
this.Data = Data;
|
|
this.Pitch = Pitch;
|
|
}
|
|
|
|
public byte[] Data;
|
|
public int Pitch;
|
|
};
|
|
|
|
public struct CreateTextureDescriptor
|
|
{
|
|
public int Width;
|
|
public int Height;
|
|
public int Elements;
|
|
public int MipLevels;
|
|
public SlimDX.DXGI.Format Format;
|
|
public ResourceUsage AccessType;
|
|
public TextureInitialData InitialData;
|
|
|
|
public static CreateTextureDescriptor AsSingleTexture(int Width, int Height, SlimDX.DXGI.Format Format, int MipLevels)
|
|
{
|
|
return AsSingleTexture(Width, Height, Format, MipLevels, null, ResourceUsage.Default);
|
|
}
|
|
|
|
public static CreateTextureDescriptor AsSingleTexture(int Width, int Height, SlimDX.DXGI.Format Format, int MipLevels, TextureInitialData InitialData, ResourceUsage AccessType)
|
|
{
|
|
CreateTextureDescriptor Desc = new CreateTextureDescriptor();
|
|
|
|
Desc.Width = Width;
|
|
Desc.Height = Height;
|
|
Desc.Elements = 0;
|
|
Desc.Format = Format;
|
|
Desc.AccessType = AccessType;
|
|
Desc.InitialData = InitialData;
|
|
Desc.MipLevels = MipLevels;
|
|
|
|
return Desc;
|
|
}
|
|
|
|
public static CreateTextureDescriptor AsArrayTexture(int Width, int Height, int Elements, SlimDX.DXGI.Format Format, int MipLevels, TextureInitialData InitialData)
|
|
{
|
|
CreateTextureDescriptor Desc = new CreateTextureDescriptor();
|
|
|
|
Desc.Width = Width;
|
|
Desc.Height = Height;
|
|
Desc.Elements = Elements;
|
|
Desc.Format = Format;
|
|
Desc.AccessType = ResourceUsage.Default;
|
|
Desc.InitialData = InitialData;
|
|
Desc.MipLevels = MipLevels;
|
|
|
|
return Desc;
|
|
}
|
|
};
|
|
|
|
public interface ITexture
|
|
{
|
|
string BindingName { get; set; }
|
|
int TextureWidth { get; }
|
|
int TextureHeight { get; }
|
|
int TextureArraySize { get; }
|
|
SlimDX.DXGI.Format TextureFormat { get; }
|
|
ShaderResourceView ResourceView { get; }
|
|
Texture2D Texture2D { get; }
|
|
|
|
SlimDX.DataRectangle MapTextureBuffer(MapMode mode);
|
|
SlimDX.DataRectangle MapTextureBuffer(MapMode mode, int arrayElement);
|
|
void UnmapTextureBuffer();
|
|
};
|
|
}
|