Dashboard/Quik/IQuikTexture.cs

48 lines
1.5 KiB
C#

using System;
namespace Quik
{
/// <summary>
/// Interface for texture instances.
/// </summary>
public interface IQuikTexture : IEquatable<IQuikTexture>, IDisposable
{
/// <summary>
/// Width of the texture.
/// </summary>
int Width { get; }
/// <summary>
/// Height of the texture.
/// </summary>
int Height { get; }
/// <summary>
/// True if the texture can have mipmaps.
/// </summary>
bool Mipmaps { get; }
/// <summary>
/// Upload texture data.
/// </summary>
/// <param name="data">Pointer to data.</param>
/// <param name="format">Color format of the data.</param>
/// <param name="size">Size of the texture data.</param>
/// <param name="level">Mip level.</param>
void Image(IntPtr data, QuikImageFormat format, QuikVec2 size, int level);
/// <summary>
/// Upload texture data.
/// </summary>
/// <param name="data">Pointer to data.</param>
/// <param name="format">Color format for the data.</param>
/// <param name="location">Location of the data in the texture.</param>
/// <param name="level">Mip level.</param>
void SubImage(IntPtr data, QuikImageFormat format, QuikRectangle location, int level);
/// <summary>
/// Generate the mip maps for the texture.
/// </summary>
void GenerateMipMaps();
}
}