Files
bluflame/aiwaz/Backup/Aiwaz.Contracts/ITexture.cs
2026-04-18 22:31:51 +02:00

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();
};
}