2
0
mirror of https://github.com/raylib-cs/raylib-cs synced 2025-04-03 11:09:40 -04:00
raylib-cs/Raylib-cs/types/Texture2D.cs
2024-12-21 15:00:13 +00:00

132 lines
2.6 KiB
C#

using System.Runtime.InteropServices;
namespace Raylib_cs;
/// <summary>
/// Texture parameters: filter mode<br/>
/// NOTE 1: Filtering considers mipmaps if available in the texture<br/>
/// NOTE 2: Filter is accordingly set for minification and magnification
/// </summary>
public enum TextureFilter
{
/// <summary>
/// No filter, just pixel aproximation
/// </summary>
Point = 0,
/// <summary>
/// Linear filtering
/// </summary>
Bilinear,
/// <summary>
/// Trilinear filtering (linear with mipmaps)
/// </summary>
Trilinear,
/// <summary>
/// Anisotropic filtering 4x
/// </summary>
Anisotropic4X,
/// <summary>
/// Anisotropic filtering 8x
/// </summary>
Anisotropic8X,
/// <summary>
/// Anisotropic filtering 16x
/// </summary>
Anisotropic16X,
}
/// <summary>
/// Texture parameters: wrap mode
/// </summary>
public enum TextureWrap
{
/// <summary>
/// Repeats texture in tiled mode
/// </summary>
Repeat = 0,
/// <summary>
/// Clamps texture to edge pixel in tiled mode
/// </summary>
Clamp,
/// <summary>
/// Mirrors and repeats the texture in tiled mode
/// </summary>
MirrorRepeat,
/// <summary>
/// Mirrors and clamps to border the texture in tiled mode
/// </summary>
MirrorClamp
}
/// <summary>
/// Cubemap layouts
/// </summary>
public enum CubemapLayout
{
/// <summary>
/// Automatically detect layout type
/// </summary>
AutoDetect = 0,
/// <summary>
/// Layout is defined by a vertical line with faces
/// </summary>
LineVertical,
/// <summary>
/// Layout is defined by a horizontal line with faces
/// </summary>
LineHorizontal,
/// <summary>
/// Layout is defined by a 3x4 cross with cubemap faces
/// </summary>
CrossThreeByFour,
/// <summary>
/// Layout is defined by a 4x3 cross with cubemap faces
/// </summary>
CrossFourByThree
}
/// <summary>
/// Texture2D type<br/>
/// NOTE: Data stored in GPU memory
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public partial struct Texture2D
{
/// <summary>
/// OpenGL texture id
/// </summary>
public uint Id;
/// <summary>
/// Texture base width
/// </summary>
public int Width;
/// <summary>
/// Texture base height
/// </summary>
public int Height;
/// <summary>
/// Mipmap levels, 1 by default
/// </summary>
public int Mipmaps;
/// <summary>
/// Data format (PixelFormat type)
/// </summary>
public PixelFormat Format;
}